¿Cuál es el propósito de For Each?
El propósito de For Each es repetir un grupo de instrucciones para cada elemento de una colección o grupo de caldas, hojas, libros, ventanas, etc.
Sintaxis:
For Each (variable) In (objeto)
(Sentencia)
Next
Donde:
• Variable a iterar sobre los valores de las propiedades, opcionalmente declarado con la palabra reservada var. Esta variable es local a la función, no al bucle.
• Objeto por el cual las propiedades son iteradas.
• Una sentencia a ejecutar para cada propiedad. Para ejecutar multiples sentencias dentro del bucle use una sentencia block para agrupar esas sentencias.
Ejemplo:
Si se desea determinar si una celda dentro de un rango contiene un valor o si está vacía, usando el siguiente código:
Sub CadaCelda()
'Se declara la variable Celda como rango
Dim Celda As Range
For Each Celda In Range("lista")
If Celda.Value = "" Then
MsgBox "La celda " & Celda.Address & "no contiene valores."
Else
MsgBox "La celda " & Celda.Address & " Tiene el contenido " & Celda.Value
End If
Next
End Sub
Lo que ocurriría es que se repetiría las instrucciones una cantidad de veces igual a la cantidad de elementos de la lista “lista”.