Estructuras de control o Bucles en VBA

Las estructuras de control permiten la repetición de determinadas acciones.

Uno de los errores más comunes que se producen en la utilización de bucles de este tipo, es la no inicialización de las variables utilizadas como contadores de iteraciones, produciendo un error de no finalización del bucle.

Do… Loop Until

Esta estructura de control se puede usar para ejecutar un bloque de instrucciones un número indefinido de veces. Las instrucciones se repiten hasta que una condición llegue a ser True.

Ejemplo:

Sub Ejemplo1()
  Dim contador As Integer
  Dim numero As Integer
  numero = 9
  Do Until numero = 10
   If numero <= 0 Then Exit Do
     numero = numero – 1
     contador = contador + 1
  Loop
  MsgBox “Se alcanzó el valor ” & numero & ” ” & contador
End Sub

Do While… Loop

En este caso, las instrucciones se repiten mientras una condición sea True (al contrario que con el Do… Loop Until).

Ejemplo:

Sub Ejemplo2()
  Dim Escribir As Integer
  Escribir = 1
  Do While Escribir < 7
    ActiveCell.FormulaR1C1 = “Excel”
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(lastrow, 1).Offset(1, 0).Select
    Escribir = Escribir + 1
  Loop
End Sub

While … Wend

El bucle WHILE…WEND sirve para realizar un tipo de bucle muy utilizado en programación que es el bucle Mientras, que se ejecuta mientras que se cumpla una condición.

Ejemplo

Sub Ejemplo3()
  dim a As Integer
  a = 0
  While (a < 13)
    a = a + 1
  End While
  MsgBox “Se alcanzó el valor ” & a 
End Sub

For… To… Next

El bucle FOR NEXT nos permite repetir una acción un número de veces dado.

Ejemplo:

En este ejemplo tenemos el bucle FOR NEXT en VBA más sencillo. El bucle cuenta de 1 a 10 y va poniendo en una columna el valor del contador.

Sub Ejemplo4()
  dim fila As Integer
  For CONTADOR = 1 To 10
    fila = CONTADOR
    Cells(fila, 1) = CONTADOR
  Next
End Sub

With

La estructura With en Vba nos permite ejecutar un conjunto de instrucciones sin tener que volver a hacer referencia al mismo objeto.

Sub Ejemplo5()
  With Cells(1, 1)
   .Value = “Hola informaticaea.com”
   .Font.Bold = True
  End With
End Sub

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.