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 < 5
Esta 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 = 8
Esto 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