VBA Loop Through Array / Voor elk item in Array

Deze tutorial leert je hoe je door arrays in VBA kunt lopen.

Er zijn twee primaire manieren om arrays te doorlopen met VBA:

  • Voor elke lus - De For Each Loop doorloopt elk item in de array.
  • Voor volgende lus - De For Next Loop doorloopt de gespecificeerde start- en eindposities van de array (we kunnen de UBound- en LBound-functies gebruiken om door de hele array te lussen).

Voor elk item in array

De Voor elke lus stelt u in staat om door elk element van de array te lopen.

12345678910111213141516171819 Sub LoopForArrayStatic()'declareer een variantarray'Dim strNames (1 tot 4) als string'vul de array in'strNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'declareer een variant om het array-element vast te houden'Dim item als variant'loop door de hele array'Voor elk item in strNames'toon het element in het foutopsporingsvenster.Debug.Print itemLusEinde sub

De bovenstaande procedure doorloopt alle namen in de array.

Voor volgende lus

De For Next Loop doorloopt elk item op een gespecificeerde begin- en eindpositie van de array.

Loop door een deel van array

U kunt de start- en eindposities voor uw lus handmatig opgeven. Dit kan geschikt zijn als u de grootte van uw array weet en/of als u slechts een deel van een array wilt doorlopen.

12345678910111213141516 Sub LoopForNextStatic()'declareer een variantarray'Dim strNames (1 tot 4) als string'vul de array'strNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'declareer een geheel getal'Dim ik als geheel getal'loop van positie 2 naar positie 3 van de array'Voor i = 2 tot 3'toon de naam in het directe venster'Debug.Print strNames(i)volgende iEinde sub

In het bovenstaande voorbeeld hebben we posities 2 en 3 van de array doorlopen. Het directe venster zou de namen als volgt retourneren.

Loop door hele array

Vervolgens zullen we de UBound- en LBound-functies gebruiken om een ​​hele array te doorlopen. Dit is erg handig als de begin- en eindposities van de array kunnen veranderen (bijv. een Dynamic Array):

123456789101112131415161718 Sub LoopForNextDynamic()'declareer een variantarray'Dim strNames() As String'initialiseer de array'ReDim strNames (1 tot 4)'vul de array'strNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'declareer een geheel getal'Dim ik als geheel getal'loop van de ondergrens van de array naar de bovengrens van de array - de hele array'Voor i = LBound(strNames) Naar UBound(strNames)'toon de naam in het directe venster'Debug.Print strNames(i)volgende iEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave