Pętla For…Next musi zawierać z góry ustaloną liczbę elementów. Jest przydatna, gdy wiemy, że chcemy np. odczytać zawartość kolejnych 10 komórek. A co jeśli nie wiemy ile jest dokładnie komórek? Np. użytkownik zaznaczył pewien zakres i chcemy wyświetlić po kolei zawartość każdej kolejnej komórki z zaznaczenia. Wtedy z pomocą przychodzi konstrukcje For Each…Next
Poniższy przykład wyświetla zawartość (po kolei) każdej z zaznaczonych komórek, oraz dodatkowo je pogrubia.
Sub TestForEach()
Dim Kom As Range
For Each Kom In Selection
MsgBox Kom.Value
Kom.Font.Bold = True
Next Kom
End Sub