Los bucles significan repeticiones de un bloque de sentencias. Algunos bucles se repiten un número concreto de veces, mientras que otros continúan en ejecución hasta que cumplen una condición determinada. El VBA ofrece tres tipos de estructura de bucle:
- La sentencia Do … Loop.
- La sentencia While …. Wend.
- La sentencia For …. Next / For Each…. Next
Do … Loop y While …. Wend repiten las operaciones en función de una condición, mientras que For …. Next repite las operaciones una cantidad de veces por contador.
For Each…. Next permite recorrer los elementos de una coleccion.
El siguiente ejemplo repite la sentencia MsgBox y muestra el valor hasta que alcanza el valor 10.
Sub Do_pruebas()
Dim Valor As Integer
Valor = 1
Do Until Valor = 10
MsgBox Valor
Valor = Valor + 1
Loop
End Sub
Advertencia: Incremente el valor o reduzca siempre la variable dentro del bucle, si lo olvida, el bucle se ejecutara sin fin.
Este ejemplo establece 10 repeticiones, con incremento negativo de 2 en la hoja Excel activa.
Sub for_pruebas()
Dim X As Integer
For X = 10 To 1 Step -2
Cells(X,1) = X
Next X
End Sub
Por lo general la instrucción For Each.. Next suele utilizarse para evaluar rangos y u hojas, como se ve en el siguiente ejemplo:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Hoja As Worksheet
For Each Hoja In ThisWorkbook.Sheets
Hoja.PageSetup.LeftFooter = "Jose Luis"
Next Hoja
End Sub
Con este ejemplo colocamos en el encabezado de cada hoja mi nombre.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.