Cómo usar los bucles For-Next en Excel 2016 VBA

Cómo usar los bucles For-Next en Excel 2016 VBA

El tipo de bucle más simple en la programación de Excel VBA es un bucle For-Next. El bucle está controlado por una variable de contador, que comienza en un valor y se detiene en otro valor. Los enunciados entre el enunciado For y el enunciado Siguiente son los enunciados que se repiten en el ciclo.

Un ejemplo para el siguiente

El siguiente ejemplo utiliza un bucle For-Next para sumar los primeros 1000 números positivos. La variable Total comienza en cero. Entonces ocurre el bucle. La variable Cnt es el contador de bucle. Comienza como 1 y se incrementa en 1 cada vez que pasa por el ciclo. El ciclo termina cuando Cnt es 1,000.

Este ejemplo tiene solo una declaración dentro del ciclo. Esta declaración agrega el valor de Cnt a la variable Total. Cuando finaliza el ciclo, un MsgBox muestra la suma de los números.

Sub AddNumbers ()
  Dim total como doble
  Dim Cnt tan largo
  Total = 0
  Para Cnt = 1 a 1000
    Total = Total + Cnt
  Siguiente Cnt
  MsgBox Total
End Sub

Debido a que el contador de bucle es una variable normal, puede escribir código para cambiar su valor dentro del bloque de código entre las instrucciones For y Next. Sin embargo, esta es una práctica muy mala .

Ejemplos para el siguiente con un paso

Puede usar un valor de Paso para omitir algunos valores de contador en un bucle For-Next. Aquí está el ejemplo anterior, reescrito para sumar solo los números impares entre 1 y 1,000:

Sub AddOddNumbers ()
  Dim total como doble
  Dim Cnt tan largo
  Total = 0
  Para Cnt = 1 a 1000 Paso 2
    Total = Total + Cnt
  Siguiente Cnt
  MsgBox Total
End Sub

Esta vez, Cnt comienza como 1 y luego toma valores de 3, 5, 7, etc. El valor de Paso determina cómo se incrementa el contador. Tenga en cuenta que el valor del ciclo superior (1000) no se utiliza en realidad porque el valor más alto de Cnt será 999.

Aquí hay otro ejemplo que usa un valor de Paso de 3. Este procedimiento funciona con la hoja activa y aplica un sombreado gris claro a cada tercera fila, desde la fila 1 a la fila 100.

Sub ShadeEveryThirdRow ()
  Dim i tan largo
  Para i = 1 a 100 Paso 3
    Filas (i) .Interior.Color = RGB (200, 200, 200)
  Siguiente yo
End Sub

Vea el resultado de ejecutar esta macro.

Cómo usar los bucles For-Next en Excel 2016 VBA

Usar un bucle para aplicar sombreado de fondo a las filas.

Un ejemplo de For-Next con una instrucción Exit For

Un bucle For-Next también puede incluir una o más declaraciones Exit For dentro del bucle. Cuando VBA encuentra esta declaración, el ciclo termina inmediatamente.

El siguiente ejemplo demuestra la instrucción Exit For. Esta rutina es un procedimiento de función, destinado a ser utilizado en una fórmula de hoja de trabajo. La función acepta un argumento (una variable llamada Str) y devuelve los caracteres a la izquierda del primer dígito numérico. Por ejemplo, si el argumento es "KBR98Z", la función devuelve "KBR".

Función TextPart (Str)
  Dim i tan largo
  TextPart = ""
  Para i = 1 a Len (Str)
    If IsNumeric (Mid (Str, i, 1)) Entonces
      Salir para
    Demás
      TextPart = TextPart & Mid (Str, i, 1)
    Terminara si
  Siguiente yo
Función final

El bucle For-Next comienza con 1 y termina con el número que representa el número de caracteres de la cadena. El código usa la función Mid de VBA para extraer un solo carácter dentro del bucle. Si se encuentra un carácter numérico, se ejecuta la instrucción Exit For y el ciclo finaliza prematuramente.

If the character is not numeric, it is appended to the returned value (which is the same as the function’s name). The only time the loop will examine every character is if the string passed as the argument contains no numeric characters.

A nested For-Next example

You can have any number of statements in the loop and nest For-Next loops inside other For-Next loops.

The following example uses a nested For-Next loop to insert random numbers into a 12-row-by-5-column range of cells. Notice that the routine executes the inner loop (the loop with the Row counter) once for each iteration of the outer loop (the loop with the Col counter). In other words, the routine executes the Cells(Row, Col) = Rnd statement 60 times.

Cómo usar los bucles For-Next en Excel 2016 VBA

These cells were filled by using a nested For-Next loop.

Sub FillRange()
  Dim Col tan largo
  Dim Row tan largo
  Para Col = 1 a 5
    Para Fila = 1 a 12
      Celdas (fila, columna) = Rnd
    Fila siguiente
  Siguiente columna
End Sub

El siguiente ejemplo usa bucles For-Next anidados para inicializar una matriz tridimensional con el valor 100. Esta rutina ejecuta la instrucción en el medio de todos los bucles (la instrucción de asignación) 1,000 veces (10 * 10 * 10), cada vez con una combinación diferente de valores para i, j y k:

Sub NestedLoops ()
  Atenuar MyArray (10, 10, 10)
  Dim i tan largo
  Dim j tan largo
  Dim k tan largo
  Para i = 1 a 10
    Para j = 1 a 10
      Para k = 1 a 10
        MyArray (i, j, k) = 100
    Siguiente k
  Siguiente j
Siguiente yo
  'Otras declaraciones van aquí
End Sub

Aquí hay un ejemplo final que usa bucles For-Next anidados, con un valor Step. Este procedimiento crea un tablero de ajedrez cambiando el color de fondo de las celdas alternas.

Cómo usar los bucles For-Next en Excel 2016 VBA

Usando bucles para crear un patrón de tablero de ajedrez.

El contador de filas recorre un ciclo de 1 a 8. Una construcción If-Then determina qué estructura anidada For-Next usar. Para las filas impares, el contador Col comienza con 2. Para las filas pares, el contador Col comienza con 1. Ambos bucles usan un valor de Paso de 2, por lo que las celdas alternativas se ven afectadas. Dos declaraciones adicionales hacen que las celdas sean cuadradas (como un tablero de ajedrez real).

Sub MakeCheckerboard ()
  Dim R tan largo, C tan largo
  Para R = 1 a 8
    Si WorksheetFunction.IsOdd (R) Entonces
     Para C = 2 a 8 Paso 2
       Celdas (R, C) .Interior.Color = 255
     Siguiente C
    Demás
     Para C = 1 a 8 Paso 2
       Celdas (R, C) .Interior.Color = 255
     Siguiente C
    Terminara si
  Siguiente R
  Filas ("1: 8"). RowHeight = 35
  Columnas ("A: H"). ColumnWidth = 6.5
End Sub

Hoja inteligente 9.1.1

Hoja inteligente 9.1.1

Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.

Compartirpunto

Compartirpunto

SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.

Lector de PDF Nitro

Lector de PDF Nitro

Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.

Lector Foxit 12

Lector Foxit 12

Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.