VBA Loop Through Array / Para Cada Item em Array

Este tutorial irá ensiná-lo a fazer um loop por meio de Arrays no VBA.

Existem duas maneiras principais de fazer loop em Arrays usando VBA:

  • Para Cada Loop - O For Each Loop percorrerá cada item da matriz.
  • Para o próximo ciclo - O For Next Loop percorrerá as posições de início e término especificadas do array (podemos usar as funções UBound e LBound para percorrer todo o array).

Para cada item da matriz

o Para Cada Loop permite que você percorra cada elemento da matriz.

12345678910111213141516171819 Sub LoopForArrayStatic ()'declara uma matriz varianteDim strNames (1 a 4) como string'preencher a matrizstrNames (1) = "Bob"strNames (2) = "Pedro"strNames (3) = "Keith"strNames (4) = "Sam"'declara uma variante para conter o elemento da matrizDim item como variante'percorre todo o arrayPara cada item em strNames'mostra o elemento na janela de depuração.Debug.Print itemCicloEnd Sub

O procedimento acima percorrerá todos os nomes da matriz.

Para o próximo ciclo

O For Next Loop percorrerá cada item em uma posição inicial e final especificada da matriz.

Loop através de parte da matriz

Você pode especificar manualmente as posições inicial e final para o seu loop. Isso pode ser apropriado se você souber o tamanho do array e / ou se quiser apenas percorrer parte de um array.

12345678910111213141516 Sub LoopForNextStatic ()'declara uma matriz varianteDim strNames (1 a 4) como string'preencher a matrizstrNames (1) = "Bob"strNames (2) = "Pedro"strNames (3) = "Keith"strNames (4) = "Sam"'declara um inteiroDim i As Integer'loop da posição 2 para a posição 3 da matrizPara i = 2 a 3'mostra o nome na janela imediataDebug.Print strNames (i)Proximo euEnd Sub

No exemplo acima, percorremos as posições 2 e 3 do array. A janela imediata retornaria os nomes da seguinte maneira.

Loop por toda a matriz

A seguir, usaremos as funções UBound e LBound para percorrer um array inteiro. Isso é extremamente útil se as posições inicial e final da matriz podem mudar (por exemplo, uma matriz dinâmica):

123456789101112131415161718 Sub LoopForNextDynamic ()'declara um array varianteDim strNames () As String'inicializar o arrayReDim strNames (1 a 4)'preencher a matrizstrNames (1) = "Bob"strNames (2) = "Pedro"strNames (3) = "Keith"strNames (4) = "Sam"'declara um inteiroDim i As Integer'loop do limite inferior da matriz para o limite superior da matriz - a matriz inteiraPara i = LBound (strNames) para UBound (strNames)'mostra o nome na janela imediataDebug.Print strNames (i)Proximo euEnd Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave