VBA Loop Through Array / For hvert element i Array

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

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave