VBA Loop Through Array / para cada elemento de la matriz

Este tutorial le enseñará cómo recorrer Arrays en VBA.

Hay dos formas principales de recorrer las matrices usando VBA:

  • Para cada bucle - For Each Loop recorrerá cada elemento de la matriz.
  • Para el siguiente bucle - For Next Loop recorrerá las posiciones iniciales y finales especificadas de la matriz (podemos usar las funciones UBound y LBound para recorrer toda la matriz).

Para cada elemento de la matriz

los Para cada bucle le permite recorrer cada elemento de la matriz.

12345678910111213141516171819 Sub LoopForArrayStatic ()'declarar una matriz varianteDim strNames (1 To 4) As String'poblar la matrizstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declarar una variante para contener el elemento de la matrizAtenuar elemento como variante'recorrer toda la matrizPara cada elemento en strNames'muestra el elemento en la ventana de depuración.Debug.Print elementoCírculoEnd Sub

El procedimiento anterior recorrerá todos los nombres de la matriz.

Para el siguiente bucle

For Next Loop recorrerá cada elemento en una posición inicial y final especificada de la matriz.

Bucle a través de parte de la matriz

Puede especificar manualmente las posiciones inicial y final de su bucle. Esto puede ser apropiado si conoce el tamaño de su matriz y / o solo desea recorrer parte de una matriz.

12345678910111213141516 Sub LoopForNextStatic ()'declarar una matriz varianteDim strNames (1 To 4) As String'poblar la matrizstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declarar un enteroDim i como entero'bucle desde la posición 2 a la posición 3 de la matrizPara i = 2 a 3'muestra el nombre en la ventana inmediataDebug.Print strNames (i)Siguiente yoEnd Sub

En el ejemplo anterior, hemos recorrido las posiciones 2 y 3 de la matriz. La ventana inmediata devolvería los nombres de la siguiente manera.

Bucle a través de toda la matriz

A continuación, usaremos las funciones UBound y LBound para recorrer una matriz completa. Esto es extremadamente útil si las posiciones inicial y final de la matriz pueden cambiar (por ejemplo, una matriz dinámica):

123456789101112131415161718 Sub LoopForNextDynamic ()'declarar una matriz varianteDim strNames () como cadena'inicializar la matrizReDim strNames (1 a 4)'poblar la matrizstrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declarar un enteroDim i como entero'bucle desde el límite inferior de la matriz hasta el límite superior de la matriz: toda la matrizPara i = LBound (strNames) a UBound (strNames)'muestra el nombre en la ventana inmediataDebug.Print strNames (i)Siguiente yoEnd Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave