Para el siguiente bucle a Excel VBA

A VBA, el bucle se utiliza cuando hay que realizar la misma tarea varias veces hasta que se cumpla una condición (o hasta que se cumpla una condición).

En este tutorial, aprenderá a utilizar el bucle siguiente para Excel VBA.

Si está interesado en aprender VBA de la manera más sencilla, consulte mi Formación VBA en línea de Excel.

Utilizando el bucle FOR NEXT a Excel VBA

El bucle “Para el siguiente” funciona ejecutando el bucle el número de veces especificado.

Por ejemplo, si te pido que añada los enteros del 1 al 10 manualmente, añadiría los dos primeros números, después añadiría el tercer número en el resultado y, a continuación, añadiría el cuarto número en el resultado, así sucesivamente.

No es así?

La misma lógica se utiliza el bucle For Next de VBA.

Especifique cuántas veces desea que se ejecute el bucle y también especificar qué quieres que haga el código cada vez que se ejecuta el bucle.

Aquí tiene el formato de bucle For Next que debe utilizar en VBA para añadir los primeros 10 números enteros.

For i = 1 to 10
[add the ith positive integer to the result]
Next i

Veamos ahora algunos ejemplos de uso del bucle For Next.

Ejemplo 1: añadir los primeros 10 números enteros positivos

A continuación se muestra el código que añadirá los 10 primeros enteros positivos mediante un bucle For Next. A continuación, mostrará un cuadro de mensaje que muestra la suma de estos números.

Sub AddNumbers()
Dim Total As Integer
Dim Count As Integer
Total = 0
For Count = 1 To 10
Total = Total + Count
Next Count
MsgBox Total
End Sub

En este código, el valor de Total establece a 0 antes de entrar en el bucle Para el siguiente.

Una vez entra en el bucle, mantiene el valor total después de cada bucle. Así, tras el primer bucle, cuando el contador es 1, el valor “Total” se convierte en 1 y, después del segundo bucle, se convierte en 3 (1 + 2), etc.

Y, finalmente, cuando termina el bucle y cuando Total tiene la suma de los 10 primeros enteros positivos, una caja de mensajes simplemente muestra el resultado en un cuadro de mensaje.

Haga clic aquí para descargar el archivo de ejemplo

Ejemplo 2: añadir los primeros 5 números enteros incluso positivos

Para resumir los primeros cinco enteros enteros positivos (es decir, 2,4,6,8 y 10), debe tener un similar con una condición para considerar sólo los números pares e ignorar los números impares.

Aquí tiene un código que lo hará:

Sub AddEvenNumbers()
Dim Total As Integer
Dim Count As Integer
Total = 0
For Count = 2 To 10 Step 2
Total = Total + Count
Next Count
MsgBox Total
End Sub

Tenga en cuenta que hemos iniciado el valor de recuento a partir de 2 y también hemos utilizado el paso 2 en la sintaxis For.

El paso 2 indicaría al código que incrementara el valor “Recuento” en 2 cada vez que se ejecuta el bucle. Por tanto, el valor del recuento comienza a partir de 2 y deviene 4, 6, 8 y 10 a medida que se produce el bucle.

NOTA: Otra manera de hacerlo podría ser ejecutar el bucle del 1 al 10 y comprobar si el número es par o impar. Sin embargo, utilizar Step, en este caso, es una manera más eficiente ya que no requiere que el bucle funcione 10 veces, sino sólo 5 veces.

Haga clic aquí para descargar el archivo de ejemplo.

Ejemplo 3: Obtener la parte numérica de una cadena alfanumérica

El bucle “Para el siguiente” también se puede utilizar para hacer un bucle a través de cada carácter de una cadena.

Por ejemplo, si tiene una lista de cadenas alfanuméricas, puede utilizar el bucle Para el siguiente para extraer los números (como se muestra a continuación):

Para el siguiente bucle a Excel, extracto de números VBA del alfanumérico

Aquí tiene un código que crea una función personalizada a VBA que se puede utilizar como cualquier otra función de hoja de cálculo.

Extrae la parte numérica de la cadena alfanumérica.

Function GETNUMERIC(Cl As Range)
Dim i As Integer
Dim Result as Long
For i = 1 To Len(Cl)
If IsNumeric(Mid(Cl, i, 1)) Then
Result = Result & Mid(Cl, i, 1)
End If
Next i
GetNumeric = Result
End Function

En este código, el número de veces que se ejecuta el bucle depende de la longitud de la cadena alfanumérica (utiliza la función LEN para encontrar la longitud de la cadena).

Debe poner esta función en la ventana del código del módulo y luego la puede utilizar como cualquier otra función de hoja de cálculo.

Para el siguiente bucle a Excel VBA GetNumeric

Haga clic aquí para descargar el archivo de ejemplo.

Ejemplo 4: Obtener números aleatorios en el intervalo seleccionado

Supongamos que desea introducir rápidamente números aleatorios en las celdas seleccionadas, aquí el código que lo hará.

Sub RandomNumbers()
Dim MyRange As Range
Dim i As Integer, j As Integer
Set MyRange = Selection
For i = 1 To MyRange.Columns.Count
For j = 1 To MyRange.Rows.Count
MyRange.Cells(j, i) = Rnd
Next j
Next i
End Sub

Este es un ejemplo de bucle For Next imbricado donde se utiliza un bucle For dentro de un bucle For.

Supongamos que haga una selección de 10 filas y 4 columnas, el valor de y varía de 1 a 4 y el valor de j varía de 1 a 10.

Cuando se ejecuta el primer bucle For, el valor de y es 1. Después se mueve el segundo bucle For que se ejecuta 10 veces (para cada fila).

Una vez que el segundo bucle For ha ejecutado 10 veces, se vuelve al primer bucle For, donde ahora el valor de y deviene 2. De nuevo, el siguiente bucle For ejecuta 10 veces.

Así es como funciona el bucle anidado para el siguiente.

Para el siguiente bucle en números aleatorios VBA de Excel

Haga clic aquí para descargar el archivo de ejemplo.

También te pueden gustar los siguientes tutoriales de Excel VBA:

Deja una respuesta

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