Denne opplæringen vil lære deg hvordan du går gjennom matriser i VBA.
Det er to primære måter å gå gjennom matriser ved hjelp av VBA:
- For hver sløyfe - For hver sløyfe går gjennom hvert element i matrisen.
- For neste sløyfe - For neste løkke vil gå gjennom spesifiserte start- og sluttposisjoner i matrisen (Vi kan bruke UBound- og LBound -funksjonene til å gå gjennom hele matrisen).
For hvert element i matrisen
De For hver sløyfe lar deg gå gjennom hvert element i matrisen.
12345678910111213141516171819 | Sub LoopForArrayStatic ()'erklærer en variantmatriseDim strNames (1 To 4) As String'fyll ut matrisenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære en variant for å holde arrayelementetDim element som variant'gå gjennom hele matrisenFor hvert element i strNames'vis elementet i feilsøkingsvinduet.Debug.Print elementLøkkeSlutt Sub |
Prosedyren ovenfor går gjennom alle navnene i matrisen.
For neste sløyfe
For neste løkke vil gå gjennom hvert element ved en spesifisert start- og sluttposisjon i matrisen.
Sløyfe gjennom en del av matrisen
Du kan manuelt angi start- og sluttposisjonene for løkken din. Dette kan være aktuelt hvis du kjenner matrisestørrelsen og/eller du bare vil gå gjennom en del av en matrise.
12345678910111213141516 | Sub LoopForNextStatic ()'erklærer en variantmatriseDim strNames (1 To 4) As String'fyll ut matrisenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære et helt tallDim i As Integer'loop fra posisjon 2 til posisjon 3 i arrayetFor i = 2 til 3'vis navnet i det umiddelbare vinduetDebug.Print strNames (i)Neste jegSlutt Sub |
I eksemplet ovenfor har vi gått gjennom posisjonene 2 og 3 i matrisen. Det umiddelbare vinduet vil returnere navnene som følger.
Loop Through Hele Array
Deretter bruker vi UBound- og LBound -funksjonene til å gå gjennom en hel matrise. Dette er ekstremt nyttig hvis start- og sluttposisjonene til matrisen kan endres (f.eks. En dynamisk matrise):
123456789101112131415161718 | Sub LoopForNextDynamic ()'erklærer en variantmatriseDim strNames () As String'initialiser matrisenReDim strNames (1 til 4)'fyll ut matrisenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære et helt tallDim i As Integer'loop fra den nedre grensen for matrisen til den øvre grensen for arrayet - hele arrayetFor i = LBound (strNames) Til UBound (strNames)'vis navnet i det umiddelbare vinduetDebug.Print strNames (i)Neste jegSlutt Sub |