MS Excel: Cómo usar la instrucción WHILE…WEND (VBA)

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MS Excel: Cómo usar la instrucción WHILE…WEND (VBA)

Este tutorial de Excel explica cómo usar Excel MIENTRAS… sentencia WEND Cree un bucle WHILE en VBA usando sintaxis y ejemplos.

describir

La instrucción WHILE…WEND de Microsoft Excel se usa para crear un bucle WHILE en VBA. Use un ciclo WHILE cuando no esté seguro de cuántas veces desea ejecutar el código VBA en el cuerpo del ciclo. Con un bucle WHILE, es posible que el cuerpo del bucle ni siquiera se ejecute una vez.

La declaración WHILE…WEND es una función integrada en Excel y se clasifica como una función lógica. Se puede utilizar como una función VBA (VBA) en Excel. Como función de VBA, puede usar esta función en el código de macro ingresado a través del editor de Microsoft Visual Basic.

Si desea seguir este tutorial, descargue la hoja de cálculo de muestra.

sintaxis

La sintaxis para crear un bucle WHILE usando la instrucción WHILE…WEND en Microsoft Excel es:

While condition
   {...statements...}
Wend

parámetro o parámetro

La condición se prueba cada vez que pasa por el bucle. Si la condición se evalúa como VERDADERO, se ejecuta el cuerpo del bucle. Si la condición se evalúa como FALSO, termine el bucle. Las sentencias ejecutan las sentencias de código para cada bucle.

devolver los bienes

La instrucción WHILE…WEND crea un bucle WHILE en VBA.

notas

  • Consulte también la instrucción FOR…NEXT para crear un bucle FOR en VBA.

aplicar para

  • 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

  • Funciones VBA (VBA)

Ejemplo (como una función de VBA)

La declaración WHILE…WEND solo se puede usar en código VBA en Microsoft Excel.

Veamos cómo crear un bucle WHILE en Microsoft Excel.

MIENTRAS bucle

Por ejemplo:

Sub While_Loop_Example

   Dim LTotal As Integer

   LTotal = 1

   While LTotal < 5
      MsgBox (LTotal)
      LTotal = LTotal + 1
   Wend

End Sub

En este ejemplo, el bucle WHILE está controlado por la condición While LTotal < 5Esta condición se prueba cada vez que se pasa por el bucle. Si la condición es VERDADERA, el código VBA mostrará un cuadro de mensaje con el valor de la variable LTotal. Si la condición es FALSA, el ciclo termina. Este código mostrará 4 cuadros de mensaje con los siguientes valores: 1, 2, 3 y 4. Una vez que LTotal llegue a 5, terminará el ciclo.

Bucle WHILE doble

Puede anidar bucles WHILE en VBA. Esto le permite tener un bucle doble con 2 condiciones diferentes que se evaluarán.

Por ejemplo:

Sub Double_While_Loop_Example

   Dim LCounter1 As Integer
   Dim LCounter2 As Integer

   LCounter1 = 1
   LCounter2 = 8

   While LCounter1 < 5
      While LCounter2 < 10
         MsgBox (LCounter1 & "-" & LCounter2)
         LCounter2 = LCounter2 + 1
      Wend
      LCounter2 = 8
      LCounter1 = LCounter1 + 1
   Wend

End Sub

Aquí tenemos 2 bucles WHILE. El ciclo WHILE externo está controlado por la variable LCounter1. El bucle interno WHILE está controlado por la variable LCounter2.

En este ejemplo, el ciclo WHILE externo se repetirá 4 veces (comenzando en 1 y terminando en 4), mientras que el ciclo WHILE interno lo hará 2 veces (comenzando en 8 y terminando en 9). En el bucle interno, el código muestra un cuadro de mensaje con los valores LCounter1-LCounter2 cada vez. Entonces, en este ejemplo, se mostrarán 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.

Notará que cuando salimos del ciclo WHILE interno, restablecemos el contador del ciclo WHILE interno a 8 usando la siguiente declaración LCounter2 = 8Esto es para asegurar que el ciclo interno WHILE se ejecutará nuevamente porque LCounter2 será igual a 10 después de salir del ciclo interno WHILE por primera vez. Si dejamos el valor de LCounter2 en 10, la condición del código de bucle interno WHILE se evaluará como FALSO y terminará el bucle cada vez que lo haga.

Ejemplo #1 del video

En el primer ejemplo de video, usaremos la declaración While…Wend para iterar a través de los productos en la columna A y actualizar el tipo de aplicación apropiado en la columna B.

Sub totn_while_loop_example1()
   
   Dim LSearchRow As Integer

   LSearchRow = 2

   While Len(Range("A" & CStr(LSearchRow)).Value) > 0

      If Cells(LSearchRow, 1).Value = "Excel" Then
         Cells(LSearchRow, 2).Value = "Spreadsheet"

      ElseIf Cells(LSearchRow, 1).Value = "Access" Then
         Cells(LSearchRow, 2).Value = "Database"

      ElseIf Cells(LSearchRow, 1).Value = "Word" Then
         Cells(LSearchRow, 2).Value = "Word Processor"

      End If

      LSearchRow = LSearchRow + 1

   Wend

End Sub

Ejemplo #2 del video

En el segundo ejemplo de video, tenemos una lista de participantes en la columna A, y usaremos la instrucción While…Wend para formatear cada valor en la columna A con un fondo azul oscuro y un color de fuente blanco.

Sub totn_while_loop_example2()

   Dim LSearchRow As Integer

   LSearchRow = 2

   While Len(Range("A" & CStr(LSearchRow)).Value) > 0

      Range("A" & CStr(LSearchRow)).Interior.Color = 6567712
      Range("A" & CStr(LSearchRow)).Font.Color = vbWhite

      LSearchRow = LSearchRow + 1

   Wend
   
End Sub
(Visited 31 times, 1 visits today)