7 Ejemplos de bucles for en Microsoft Excel VBA
_Si está escribiendo un programa VBA y desea ejecutar la misma tarea varias veces, puede hacerlo utilizando VBA para bucles. VBA es un lenguaje de programación secuencial. Cada línea de código se ejecuta de arriba a abajo hasta que no haya más líneas de código para leer. Si desea volver atrás y realizar una tarea, entonces debe forzar usando código macro.
Obtienes resultados con loop._
El bucle For en VBA es uno de los tipos de bucle más comunes. El bucle For tiene dos formas: For Next y For Each In Next. El ciclo For se usa normalmente para moverse secuencialmente a través de una lista de elementos o números.
Para finalizar el ciclo For en cualquier punto dado, podemos usar la instrucción exit.
For Loop dará vueltas y vueltas hasta que cumpla con la condición final. Una vez que se cumple la condición final, el flujo de programación continuará hacia abajo, en su dirección natural.
The For … Next loop has the following syntax: For counter = start_counter To end_counter 'Do something here (your code) Next counter
De hecho, estamos creando un ciclo que utiliza un contador de variables como el «cronometrador» del ciclo. Lo configuramos en un valor igual a start_counter al comienzo del ciclo y luego lo incrementamos en 1 durante cada ciclo hasta que cumpla con la condición final. El ciclo se ejecutará hasta que el valor del contador sea igual a end_counter. El ciclo se ejecuta por última vez cuando ambos valores anteriores coinciden y luego el ciclo se detiene.
Todo lo anterior puede resultar confuso para algunas personas, así que preparémonos y comencemos a aprender For Loop en Excel con algunos ejemplos.
Cree un nuevo libro de trabajo de Excel y luego guárdelo con la extensión .xlsm Para iniciar la pantalla del editor de Visual Basic, use ALT + F11 Insertar nuevo módulo Copie el siguiente código en el módulo estándar de VB
Bucle 1 (Visualización del número con msgbox)
Sub Loop1() Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & " is " & "Your StartNumber" Next StartNumber End Sub
Explicación del código:
El código de VBA necesita que asigne un valor a StartNumber, donde EndNumber son variables que se declaran como enteros como el punto de partida para su ciclo Estos valores pueden ser cualquier número y tenemos EndNumber ya que 5 StartNumber se inicia en 1 For StartNumber = 1 To EndNumber significa que el código comenzará de 1 (StartNumber) a 5 (EndNumber)
-
MsgBox StartNumber & «is» & «Your StartNumber» mostrará el siguiente cuadro de mensaje
Loop2 (Rellenar valores)
Sub Loop2() 'Fills cells A1:A56 with values of X by looping' --- Comment 'Increase value of X by 1 in each loop' --- Comment Dim X As Integer For X = 1 To 56 Range("A" & X).Value = X Next X End Sub
Explicación del código:
Hemos asignado X como un número entero Para X = 1 a 56; esto comenzará con 1 y continuará hasta 56 con un incremento de 1 cada vez * Rango («A» y X) .Valor = X; esta línea almacenará el valor de X y pasará al rango A1 a A56
Loop3 (Rellena las celdas con color de fondo)
Sub Loop3() ' Fills cells B1:B56 with the 56 background colours' --- Comment Dim X As Integer For X = 1 To 56 Range("B" & X).Select With Selection.Interior .ColorIndex = X .Pattern = xlSolid End With Next X End Sub
Explicación del código:
Hemos asignado X como un número entero Para X = 1 a 56 comenzará con 1 y continuará hasta 56 con un incremento de 1 cada vez. Rango («B» y X) .Seleccionar; esta línea almacenará el valor de X y seleccionará la celda B1 hasta B56 Las siguientes 4 líneas, es decir, con Selección. Interior seleccionará el índice de color interior y tomará el valor de X de ese índice de color de modo que 1 pertenece al color negro; 2 pertenece al color blanco; 3 para rojo y así sucesivamente
Bucle 4 (valores de relleno con incremento de 2)
De forma predeterminada, el valor de Paso es 1 hacia adelante, sin embargo, se puede establecer en un número superior a 1.
Sub Loop4() ' Fills every second cell from C1:C50 with values of X' --- Comment Dim X As Integer For X = 1 To 50 Step 2 Range("C" & X).Value = X Next X End Sub
Explicación del código:
Hemos asignado X como un número entero Para X = 1 a 50 Paso 2; esto comenzará con 1 en X hasta 50 con un incremento de 2 cada vez * Rango («C» y X) .Value = X; esta línea almacenará el valor de X y pasará al rango C1 a C50
Bucle 5 (VBA para bucle en reversa con instrucción STEP)
No es necesario que el contador en el ciclo For solo se mueva de valores bajos a valores más altos; en cambio, el bucle For puede ejecutarse hacia atrás, es decir, valores altos a bajos.
Aunque el valor de Paso es 1 hacia adelante por defecto, sin embargo, se puede establecer en un número en orden inverso.
Sub Loop5() ' Fills cells from D1:D50 with values of X' --- Comment ' In this case X decreases by 1' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 50 To 0 Step -1 Range("D" & Row).Value = X Row = Row + 1 Next X End Sub
Explicación del código:
Hemos asignado X & Row como número entero La fila contiene el valor 1 Para X = 50 a 0 Paso -1; esto comenzará desde 50 con una disminución de 1 en X hasta 0 Rango («D» y Fila) .Valor = X; esta línea almacenará el valor de X y pasará al rango D1 a D50
Bucle 6 (llena cada segunda celda en reversa con PASO-2)
En el ejemplo anterior del bucle For, podemos usar el paso y el orden para ver si el bucle For funciona en dirección hacia adelante o hacia atrás.
Sub Loop6() ' Fills every second cell from E1:E100 with values of X' --- Comment ' In this case X decreases by 2' --- Comment Dim X As Integer, Row As Integer Row = 1 For X = 100 To 0 Step -2 Range("E" & Row).Value = X Row = Row + 2 Next X End Sub
Explicación del código:
Hemos asignado X & Row como número entero La fila contiene el valor 1 Para X = 100 a 0 Paso -2; esto comenzará desde 100 con una disminución de 2 en X hasta 0 Rango («E» y Fila) .Value = X; esta línea almacenará el valor de X y pasará al rango E1 a E100
Bucle 7 (Para bucle con condición IF: llena las celdas a partir de la celda específica) Esto llenará las celdas de la celda F11 con el valor 11 hasta que X cumpla con la condición IF
Sub Loop7() ' Starts to fill cells F11:F100 with values of X' --- Comment ' This will exit from the loop after 50' --- Comment Dim X As Integer For X = 11 To 100 Range("F" & X).Value = X If X = 50 Then MsgBox ("Bye Bye") Exit For End If Next X End Sub
Explicación del código:
Hemos asignado X como un número entero Para X = 11 a 100; comenzará desde 11 con incremento de 1 en X hasta que la condición cumpla * Rango («F» y X) .Value = X; esta línea almacenará el valor de X y pasará al rango F11 hasta que la condición cumpla
-
Después de ingresar el valor 50 en la celda F50, se mostrará el siguiente cuadro de mensaje
Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]