Denne vejledning lærer dig, hvordan du går gennem arrays i VBA.
Der er to primære måder at gennemgå arrays ved hjælp af VBA:
- For hver sløjfe - For hver sløjfe går gennem hvert element i arrayet.
- Til næste sløjfe - For næste løkke vil gå gennem bestemte start- og slutpositioner i arrayet (vi kan bruge UBound- og LBound -funktionerne til at gå gennem hele arrayet).
For hvert element i array
Det For hver sløjfe giver dig mulighed for at gå gennem hvert element i arrayet.
12345678910111213141516171819 | Sub LoopForArrayStatic ()'erklære en variant arrayDim strNavne (1 til 4) som streng'udfyld matrixenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære en variant for at holde array -elementetDim element som variant'løbe gennem hele arrayetFor hvert element i strNames'vis elementet i fejlfindingsvinduet.Debug.Print elementSløjfeAfslut Sub |
Ovenstående procedure går gennem alle navnene i arrayet.
Til næste sløjfe
For næste løkke vil gå gennem hvert element ved en bestemt start- og slutposition i arrayet.
Sløjfe igennem en del af Array
Du kan manuelt angive start- og slutpositionerne for din loop. Dette kan være hensigtsmæssigt, hvis du kender din matrixstørrelse og/eller du kun vil gå gennem en del af en matrix.
12345678910111213141516 | Sub LoopForNextStatic ()'erklære en variant arrayDim strNavne (1 til 4) som streng'udfyld matrixenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære et helt talDim i As Integer'loop fra position 2 til position 3 i arrayetFor i = 2 til 3'vis navnet i det umiddelbare vindueDebug.Print strNames (i)Næste iAfslut Sub |
I eksemplet ovenfor har vi gennemgået positionerne 2 og 3 i arrayet. Det umiddelbare vindue ville returnere navnene som følger.
Loop Through Hele Array
Dernæst vil vi bruge UBound- og LBound -funktionerne til at gå igennem et helt array. Dette er yderst nyttigt, hvis arrayets start- og slutpositioner kan ændre sig (f.eks. Et dynamisk array):
123456789101112131415161718 | Sub LoopForNextDynamic ()'erklære en variant arrayDim strNames () Som streng'initialiser arrayetReDim strNames (1 til 4)'udfyld matrixenstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'erklære et helt talDim i As Integer'loop fra matrixens nedre grænse til arrayets øvre grænse - hele arrayetFor i = LBound (strNames) Til UBound (strNames)'vis navnet i det umiddelbare vindueDebug.Print strNames (i)Næste iAfslut Sub |