Excel VBA Loop
Looping es una de las técnicas más poderosas de programación. Un bucle en Excel VBA le permite colocar a través de un rango de celdas con líneas tan sólo unos códigos.
bucle simple
Se puede utilizar un único bucle de bucle a través de un unidimensional rango de celdas.
Coloque un enlace: / VBA crear a un macro-#-botón de comando [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim i As Integer For i = 1 To 6 Cells(i, 1).Value = 100 Next i
Como resultado al hacer clic en el botón de comando en la hoja:
Explicación: Las líneas de código entre For y Next se ejecutará en seis ocasiones. Para i = 1, Excel VBA introduce el valor 100 en la célula en la intersección de la fila 1 y la columna 1. Cuando Excel VBA alcanza Siguiente i, se incrementa i con 1 y salta de nuevo a la instrucción For. Para i = 2, Excel VBA introduce el valor 100 en la célula en la intersección de la fila 2 y la columna 1, etc.
Nota: es una buena práctica para siempre guión (pestaña) el código entre las palabras For y Next. Esto hace que su código sea más fácil de leer.
Double Loop
Se puede utilizar un bucle doble de bucle a través de una gama de dos dimensiones de las células.
Coloque un enlace: / VBA crear a un macro-#-botón de comando [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim i As Integer, j As Integer For i = 1 To 6 For j = 1 To 2 Cells(i, j).Value = 100 Next j Next i
Como resultado al hacer clic en el botón de comando en la hoja:
Explicación: para i = 1 y j = 1, Excel VBA introduce el valor 100 en la célula en la intersección de la fila 1 y la columna 1. Cuando Excel VBA alcanza Siguiente j, aumenta j con 1 y salta de nuevo a la instrucción for j . Para i = 1 y j = 2, Excel VBA introduce el valor 100 en la célula en la intersección de la fila 1 y la columna 2. A continuación, Excel VBA ignora Siguiente j porque j sólo se ejecuta de 1 a 2. Cuando Excel VBA alcanza Siguiente i , se incrementa i en 1 y salta de nuevo a la instrucción For i. Para i = 2 y j = 1, Excel VBA introduce el valor 100 en la célula en la intersección de la fila 2 y la columna 1, etc.
Triple Loop
Puede utilizar un triple bucle a bucle a través de los rangos de dos dimensiones en varias hojas de cálculo de Excel.
Coloque un enlace: / VBA crear a un macro-#-botón de comando [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim c As Integer, i As Integer, j As Integer For c = 1 To 3 For i = 1 To 6 For j = 1 To 2 Worksheets(c).Cells(i, j).Value = 100 Next j Next i Next c
Explicación: El único cambio realizado en comparación con el código para el bucle doble es que hemos añadido uno más de bucle y Hojas de trabajo añadido (c). delante de las células para obtener el rango de dos dimensiones en la primera hoja para c = 1, la segunda hoja para c = 2 y la tercera hoja de c = 3. Descargar el archivo de Excel para ver este resultado.
Do While Loop
Además del bucle para el próximo, hay otros bucles en Excel VBA. Por ejemplo, el bucle Do While. Código coloca entre Do While y Loop se repite mientras la parte después Do Mientras que es cierto.
-
Coloque una
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim i As Integer i = 1 Do While i < 6 Cells(i, 1).Value = 20 i = i + 1 Loop
Como resultado al hacer clic en el botón de comando en la hoja:
Explicación: el tiempo que i es menor que 6, Excel VBA introduce el valor 20 en la célula en la intersección de la fila i y la columna 1 y se incrementa i en 1. En Excel VBA (y en otros lenguajes de programación), el símbolo ‘= ‘se convierte en medios. Esto no quiere decir iguales. Así que i = i + 1 significa que se convierte en I + 1. En otras palabras: hay que tomar el valor actual de i y añadir 1 a la misma. 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 se detiene cuando i es igual a 6).
-
Entre algunos números en la columna A.
-
Coloque un
enlace: / VBA-crear a un macro-comandos # botón [botón de comando]
en su hoja de trabajo y añadir las siguientes líneas de código:
Dim i As Integer i = 1 Do While Cells(i, 1).Value <> "" Cells(i, 2).Value = Cells(i, 1).Value + 10 i = i + 1 Loop
Como resultado al hacer clic en el botón de comando en la hoja:
Explicación: el tiempo que las células (i, 1) .Value no está vacío (<> medio que no igual a), Excel VBA entra en el valor en la celda en la intersección de la fila i y la columna 2, que es 10 mayor que el valor en la celda en la intersección de i fila y columna 1. Excel VBA se detiene cuando i es igual a 7, porque las células (7, 1) .Value está vacía. Esta es una gran manera de bucle a través de cualquier número de filas en una hoja de cálculo.