VBA Bucle a través de una matriz / Recorrer elementos de una matriz.

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 22, 2022

Este tutorial le enseñará cómo hacer un bucle a través de una matriz en VBA. Hay dos formas principales de recorrer matrices con VBA:

  • Bucle ForEach – El bucle For Each recorrerá cada elemento de la matriz.
  • Bucle ForNext – El bucle For Next recorrerá las posiciones de inicio y final de la matriz especificadas (podemos utilizar las funciones UBound y LBound para recorrer toda la matriz).

Bucle For Each

El Bucle For Each le permite hacer un bucle a través de cada elemento de la matriz.

Sub bucleMatrizEstatica()
   'declarar la variable de la matriz
   Dim nombres(1 To 4) As String
 
   'populate the array
   nombres(1) = "Bob"
   nombres(2) = "Peter"
   nombres(3) = "Keith"
   nombres(4) = "Sam"
 
   'declarar una variable para guardar el elemento de la matriz
   Dim item as variant
 
   'bucle a través de toda la matriz
   For Each item in nombres
      'mostrar los elementos en la ventana inmediato
      Debug.Print item
   Next item
End Sub

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

matrices bucle for each

Bucle For Next

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

Recorrer parte de la matriz

Puede especificar manualmente las posiciones de inicio y final de su bucle. Esto puede ser apropiado si conoce el tamaño de su matriz y/o sólo quiere recorrer parte de una matriz.

Sub bucleForNext()
'Declarar una variable tipo matriz
   Dim nombres(1 To 4) As String
'Llenar la variable
   nombres(1) = "Bob"
   nombres(2) = "Peter"
   nombres(3) = "Keith"
   nombres(4) = "Sam"
'Declarar una variable tipo entero
   Dim i As Integer
'Recorrer desde la posición 2 a la posición 3 de la matriz
   For i = 2 To 3
'Mostrar el nombre en la ventana inmediato
      Debug.Print nombres(i)
   Next i
End Sub

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

matrices bucle for next

Recorrer toda la matriz

A continuación, utilizaremos las funciones UBound y LBound para recorrer una matriz completa. Esto es extremadamente útil si las posiciones de inicio y fin del arreglo pueden cambiar (por ejemplo, un arreglo dinámico):

Sub bucleForNextDinamico()
'Declarar una variable tipo matriz
   Dim nombres() As String
'Inicializar la matriz
   ReDim nombres(1 To 4)
'Llenar la matriz
   nombres(1) = "Bob"
   nombres(2) = "Peter"
   nombres(3) = "Keith"
   nombres(4) = "Sam"
'Declarar una variable tipo entero
   Dim i As Integer
'loop from the lower bound of the array to the upper bound of the array - the entire array
'bucle desde el límite inferior de la matriz hasta el límite superior de la matriz - toda la matriz
   For i = LBound(nombres) To UBound(nombres)
'mostrar el nombre en la ventana inmediato
      Debug.Print nombres(i)
   Next i
End Sub

bucle For Next Dinamico

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples