VBA Loop Through Array / dla każdego elementu w tablicy

Ten samouczek nauczy Cię, jak przechodzić przez tablice w VBA.

Istnieją dwa podstawowe sposoby na pętlę przez tablice za pomocą VBA:

  • Dla każdej pętli - Pętla For Each przejdzie przez każdy element tablicy.
  • Na następną pętlę - For Next Loop wykona pętlę przez określoną pozycję początkową i końcową tablicy (możemy użyć funkcji UBound i LBound, aby przejść przez całą tablicę).

Dla każdego elementu w tablicy

ten Dla każdej pętli umożliwia pętlę przez każdy element tablicy.

12345678910111213141516171819 Pętla podrzędna dla tablicy statycznej()'deklaruj tablicę wariantówDim strNames(1 do 4) As String'wypełnij tablicęstrNames(1) = "Bob"strNames(2) = "Piotr"strNames(3) = "Keith"strNames(4) = "Sam"'deklaruj wariant do przechowywania elementu tablicyPrzyciemnij element jako wariant'przeprowadź pętlę przez całą tablicęDla każdego elementu w strNames'pokaż element w oknie debugowania.Debug.Drukuj elementPętlaNapis końcowy

Powyższa procedura przejdzie przez wszystkie nazwy w tablicy.

Na następną pętlę

Pętla For Next przejdzie przez każdy element w określonej pozycji początkowej i końcowej tablicy.

Przeprowadź pętlę przez część tablicy

Pozycję początkową i końcową pętli można określić ręcznie. Może to być odpowiednie, jeśli znasz rozmiar swojej tablicy i/lub chcesz przejść tylko przez część tablicy.

12345678910111213141516 Pętla podrzędnaDalejDalejStatic()'deklaruj tablicę wariantówDim strNames(1 do 4) As String'wypełnij tablicęstrNames(1) = "Bob"strNames(2) = "Piotr"strNames(3) = "Keith"strNames(4) = "Sam"'deklaruj liczbę całkowitą'Dim i jako liczba całkowita'pętla od pozycji 2 do pozycji 3 tablicyDla i = 2 do 3'pokaż nazwę w bezpośrednim oknieDebug.Print strNames(i)Dalej jaNapis końcowy

W powyższym przykładzie przeszliśmy przez pozycje 2 i 3 tablicy. Bezpośrednie okno zwróci nazwy w następujący sposób.

Przeprowadź pętlę przez całą macierz

Następnie użyjemy funkcji UBound i LBound, aby przejść przez całą tablicę. Jest to niezwykle przydatne, jeśli pozycja początkowa i końcowa tablicy może się zmienić (np. tablica dynamiczna):

123456789101112131415161718 Pętla podrzędnaDalejDynamiczna()'deklaruj tablicę wariantówDim strNames() jako ciąg'zainicjuj tablicęReDim strNames(1 do 4)'wypełnij tablicęstrNames(1) = "Bob"strNames(2) = "Piotr"strNames(3) = "Keith"strNames(4) = "Sam"'deklaruj liczbę całkowitą'Dim i jako liczba całkowita'pętla od dolnej granicy tablicy do górnej granicy tablicy - cała tablicaFor i = LBound(strNames) To UBound(strNames)'pokaż nazwę w bezpośrednim oknieDebug.Print strNames(i)Dalej jaNapis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave