Excel VBA Loop: macros simples de Excel

Hola, mi nombre es Miguel y durante el dia de hoy os traigo un nuevo artículo.

El bucle es una de las técnicas de programación más poderosas. A lazo dentro Excel VBA le permite atravesar una serie de celdas con pocas líneas de código.

Bucle único

Puede utilizar un solo bucle para recorrer un rango de celdas unidimensional.

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Oscuro me Cómo Entero

Para i = 1 Para 6
Celdas (i, 1) .Valor = 100
Entonces me

Resultado al hacer clic en el botón de comando en la hoja:

Bucle único en Excel VBA

Explicación: Las líneas de código entre For y Next se ejecutarán seis veces. Para i = 1, Excel VBA ingresa el valor 100 en la celda en la intersección de la fila 1 y la columna 1. Cuando Excel VBA llega a Siguiente i, aumenta i en 1 y regresa a la instrucción For. Para i = 2, Excel VBA ingresa el valor 100 en la celda en la intersección de la fila 2 y la columna 1, y así sucesivamente.

Nota: Es una buena práctica sangrar (tabular) siempre el código entre las palabras Para y Siguiente. Esto facilita la lectura de su código.

Doble circuito

Puede utilizar un bucle doble para atravesar un rango bidimensional de celdas.

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Oscuro me Cómo Entero, j Cómo Entero

Para i = 1 Para 6
Para j = 1 Para 2
Celdas (i, j) .Valor = 100
Entonces j
Entonces me

Resultado al hacer clic en el botón de comando en la hoja:

Bucle doble en Excel VBA

Explicación: Para i = 1 ej = 1, Excel VBA ingresa el valor 100 en la celda en la intersección de la fila 1 y la columna 1. Cuando Excel VBA llega a Siguiente j, aumente j en 1 y regrese a la instrucción For j. Para i = 1 ej = 2, Excel VBA ingresa el valor 100 en la celda en la intersección de la fila 1 y la columna 2. Luego, Excel VBA ignora la siguiente j porque j solo funciona de 1 a 2. Cuando Excel VBA llega a la siguiente i , aumente i en 1 y vuelva a la instrucción For i. Para i = 2 ej = 1, Excel VBA ingresa el valor 100 en la celda en la intersección de la fila 2 y la columna 1, y así sucesivamente.

Bucle triple

Puede utilizar un ciclo triple para recorrer intervalos bidimensionales en varias hojas de cálculo de Excel.

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Oscuro C Cómo Entero, me Cómo Entero, j Cómo Entero

Para c = 1 Para 3
Para i = 1 Para 6
Para j = 1 Para 2
Hojas de cálculo (c) .Células (i, j) .Valor = 100
Entonces j
Entonces me
Entonces C

Explicación: El único cambio realizado en comparación con el código para el ciclo doble es que agregamos un ciclo más y agregamos hojas de trabajo (c). delante de Celdas para obtener el rango bidimensional en la primera hoja para c = 1, la segunda hoja para c = 2 y la tercera hoja para c = 3. Descargue el archivo de Excel para ver este resultado.

Hacer mientras bucle

Además del bucle For Next, hay otros bucles en Excel VBA. Por ejemplo, el ciclo Hacer mientras. El código colocado entre Do While y Loop se repetirá siempre que la parte posterior de Do While sea verdadera.

1. Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Oscuro me Cómo Entero
i = 1

Hacer Mientras eu Celdas (i, 1) .Valor = 20
yo = yo + 1
Lazo

Resultado al hacer clic en el botón de comando en la hoja:

Hacer mientras bucle

Explicación: Siempre que i es menor que 6, Excel VBA ingresa el valor 20 en la celda en la intersección de la fila, es decir, de la columna 1 y aumenta i en 1. En Excel VBA (y otros lenguajes de programación), el símbolo '=' significa se convierte . No significa lo mismo. Entonces i = i + 1 significa que i se convierte en i + 1. En otras palabras: tome el valor actual de, es decir, sume 1. Por ejemplo, si i = 1, i se convierte en 1 + 1 = 2. Como resultado, el valor 20 se colocará en la columna A cinco veces (no seis porque Excel VBA para cuando i es igual a 6).

2. Ingrese algunos números en la columna A.

Cualquier número de filas

3. Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

Oscuro me Cómo Entero
i = 1

Hacer Mientras Celdas (i, 1). Valor ""
Celdas (i, 2) .Valor = Celdas (i, 1) .Valor + 10
yo = yo + 1
Lazo

Resultado al hacer clic en el botón de comando en la hoja:

Bucle Do while avanzado

Explicación: siempre que las celdas (i, 1). El valor no está vacío ( significa que no es igual a), Excel VBA ingresa el valor en la celda en la intersección de la fila, es decir, de la columna 2, es decir, 10 es mayor que el valor en la celda en la intersección de fila, es decir, de la columna 1 Excel VBA se detiene cuando i es igual a 7 porque las celdas (7, 1). El valor está vacío. Esta es una excelente manera de recorrer cualquier número de filas en una hoja de trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página utiliza Cookies. Más info