¿Te gustaría aprender a usar la declaración FOR NEXT VBA en Excel? Este tutorial de Excel explica cómo usar la declaración FOR NEXT de Excel para crear un bucle FOR en VBA con sintaxis y ejemplos. Te invitamos a quedarte:
Descripción de la declaración FOR NEXT VBA en Excel
La instrucción FOR NEXT de Microsoft Excel se utiliza para crear un bucle FOR para que puedas ejecutar el código VBA un número fijo de veces.
La instrucción FOR NEXT VBA en Excel es una función incorporada en esta herramienta ofimática que se clasifica como una función lógica. Se puede utilizar como función VBA (VBA) en Excel. Como función de VBA, puedes utilizar esta en el código de macro que se ingresa a través del Editor de Microsoft Visual Basic.
Aquí puedes aprender sobre: Cómo Agrupar Una Tabla Dinámica Por Meses En Excel
Sintaxis de la declaración FOR NEXT VBA en Excel
La sintaxis para crear un bucle FOR usando la instrucción de la declaración FOR NEXT VBA en Excel es:
For counter = start To end [Step increment]
{…statements…}
Next [counter]
Parámetros o argumentos
Encimera
La variable de contador de bucle.
Comienzo
El valor inicial del contador.
Final
El valor final del contador.
Incremento
Opcional. El valor de ese contador se incrementa en cada pasada a través del bucle. Puede ser un número positivo o negativo. Si no se especifica, se establecerá de forma predeterminada en un incremento de 1 para que cada pasada a través del bucle aumente el contador en 1.
Declaraciones
Las declaraciones de código para ejecutar cada paso a través del bucle.
Devoluciones de la declaración FOR NEXT VBA en Excel
La declaración FOR NEXT VBA en Excel crea un bucle FOR en VBA.
Se aplica a:
- Excel para Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 para Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Tipo de función:
- Función VBA (VBA)
Ejemplo (como función la declaración FOR NEXT VBA en Excel)
La instrucción de la declaración FOR NEXT VBA en Excel solo se puede usar en código VBA en esta herramienta ofimática.
Veamos cómo crear un bucle FOR en Microsoft Excel, comenzando con un bucle simple, bucle doble y bucle triple, y luego exploremos cómo cambiar el valor utilizado para incrementar el contador en cada pasada por el bucle.
Bucle único con FOR NEXT VBA en Excel
La implementación más simple del bucle FOR es usar la instrucción con FOR NEXT VBA en Excel para crear un solo bucle. Esto te permitirá repetir el código VBA un número fijo de veces.
Por ejemplo:
Sub Single_Loop_Example
Dim LCounter As Integer
For LCounter = 1 To 5
MsgBox (LCounter)
Next LCounter
End Sub
En este ejemplo, el bucle FOR está controlado por la variable LCounter. Haría un ciclo 5 veces, comenzando en 1 y terminando en 5. Cada vez dentro del ciclo, mostraría un cuadro de mensaje con el valor de la variable LCounter. Este código mostraría 5 cuadros de mensaje con los siguientes valores: 1, 2, 3, 4 y 5.
Bucle único – Incremento cambiante con FOR NEXT VBA en Excel
De forma predeterminada, el bucle FOR incrementará su contador de bucle en 1, pero esto se puede personalizar. Puedes utilizar para cambiar el valor utilizado para incrementar el contador. El bucle FOR puede incrementarse y pueden ser valores positivos o negativos.STEP increment
Incremento positivo con FOR NEXT VBA en Excel
Veamos primero un ejemplo de cómo incrementar el contador de un bucle FOR en un valor positivo.
Por ejemplo:
Sub Increment_Positive_Example
Dim LCounter As Integer
For LCounter = 1 To 9 Step 2
MsgBox LCounter
Next LCounter
End Sub
En este ejemplo, se ha usado el paso 2 en el bucle FOR para cambiar el incremento a 2. Lo que esto significa es que el bucle FOR comenzaría en 1, se incrementaría en 2 y terminaría en 9. El código mostraría 5 cuadros de mensaje con los siguientes valores: 1, 3, 5, 7 y 9.
Incremento negativo con FOR NEXT VBA en Excel
Ahora, veamos cómo incrementar el contador de un bucle FOR en un valor negativo.
Por ejemplo:
Sub Increment_Negative_Example
Dim LCounter As Integer
For LCounter = 50 To 30 Step -5
MsgBox LCounter
Next LCounter
End Sub
Cuando incrementa en un valor negativo, necesitas que el número inicial sea el valor más alto y el número final sea el valor más bajo, ya que el ciclo FOR estará contando hacia atrás. Entonces, en este ejemplo, el ciclo FOR comenzará en 50, se incrementará en -5 y terminará en 30. El código mostraría 5 cuadros de mensaje con los siguientes valores: 50, 45, 40, 35 y 30.
Doble circuito con FOR NEXT VBA en Excel
A continuación, veamos un ejemplo de cómo crear un bucle FOR doble en Microsoft Excel.
Por ejemplo:
Sub Double_Loop_Example
Dim LCounter1 As Integer
Dim LCounter2 As Integer
For LCounter1 = 1 To 4
For LCounter2 = 8 To 9
MsgBox LCounter1 & «-» & LCounter2
Next LCounter2
Next LCounter1
End Sub
Aquí tenemos 2 bucles FOR. El bucle FOR externo está controlado por la variable LCounter1. El bucle FOR interno está controlado por la variable LCounter2.
En este ejemplo, el ciclo FOR externo se repetirá 4 veces (comenzando en 1 y terminando en 4) y el ciclo FOR interno se repetirá 2 veces (comenzando en 8 y terminando en 9). Dentro del bucle interno, el código mostraría un cuadro de mensaje cada vez con el valor de LCounter1 – LCounter2. Entonces, en este ejemplo, se mostrarían 8 cuadros de mensaje con los siguientes valores: 1-8, 1-9, 2-8, 2-9, 3-8, 3-9, 4-8 y 4-9.
Bucle triple con FOR NEXT VBA en Excel
A continuación, veamos un ejemplo de cómo crear un ciclo FOR triple en Microsoft Excel.
Por ejemplo:
Sub Triple_Loop_Example
Dim LCounter1 As Integer
Dim LCounter2 As Integer
Dim LCounter3 As Integer
For LCounter1 = 1 To 2
For LCounter2 = 5 To 6
For LCounter3 = 7 To 8
MsgBox LCounter1 & «-» & LCounter2 & «-» & LCounter3
Next LCounter3
Next LCounter2
Next LCounter1
End Sub
Aquí tenemos 3 bucles FOR. El bucle FOR más externo está controlado por la variable LCounter1. El siguiente bucle FOR está controlado por la variable LCounter2. El bucle FOR más interno está controlado por la variable LCounter3
En este ejemplo, el bucle FOR más externo se haría un bucle 2 veces (comenzando en 1 y terminando en 2), el siguiente bucle FOR haría un bucle 2 veces (comenzando en 5 y terminando en 6), y el bucle FOR más interno sería bucle 2 veces (comenzando en 7 y terminando en 8).
Dentro del bucle más interno, el código mostraría un cuadro de mensaje cada vez con el valor de LCounter1 – LCounter2 – LCounter3. Este código mostraría 8 cuadros de mensaje con los siguientes valores: 1-5-7, 1-5-8, 1-6-7, 1-6-8, 2-5-7, 2-5-8, 2- 6-7 y 2-6-8.
Ejemplo 1 de FOR NEXT VBA en Excel
En el primer ejemplo, usaremos la instrucción con FOR NEXT VBA en Excel para recorrer los productos en la columna A y actualizar el tipo de aplicación apropiado en la columna B.
Sub totn_for_loop_example1 ()
Dim LCounter como entero
Para LCounter = 2 a 4
Si Cells (LCounter, 1) .Value = «Excel» Entonces
Celdas (LCounter, 2) .Value = «Hoja de cálculo»
ElseIf Cells (LCounter, 1) .Value = «Access» Then
Celdas (LCounter, 2) .Value = «Base de datos»
ElseIf Cells (LCounter, 1) .Value = «Word» Then
Celdas (LCounter, 2) .Value = «Procesador de textos»
Terminará si
Siguiente LCounter
End Sub
Ejemplo 2 de FOR NEXT VBA en Excel
En el segundo ejemplo, tenemos una lista de participantes en la columna A y usaremos dos bucles FOR para asignar a cada uno de los participantes al Equipo A o al Equipo B (alternando entre los dos).
Sub totn_for_loop_example2 ()
Dim LCounter1 como entero
Dim LCounter2 como entero
Para LCounter1 = 2 a 9 Paso 2
Celdas (LCounter1, 2) .Value = «Equipo A»
Siguiente LCounter1
Para LCounter2 = 3 a 9 Paso 2
Celdas (LCounter2, 2) .Value = «Equipo B»
Siguiente LCounter2
End Sub
También te puede interesar: Cómo Copiar Una Hoja Excel A Otro Libro – Tutorial
Como verás, con estos ejemplos de las declaraciones FOR NEXT VBA en Excel podrás crear bucles de manera fácil en el editor de Microsoft Visual Basic con esta función lógica. Esperamos haberte ayudado.
Me llamo Javier Chirinos y soy un apasionado de la tecnología. Desde que tengo uso de razón me aficioné a los ordenadores y los videojuegos y esa afición terminó en un trabajo.
Llevo más de 15 años publicando sobre tecnología y gadgets en Internet, especialmente en mundobytes.com
También soy experto en comunicación y marketing online y tengo conocimientos en desarrollo en WordPress.