Может как то так?
Предположим, что список представляет собой именованный диапазон в столбце A, называемый «данными» на Листе 1.
Ячейка проверки A1, ссылаясь на список "= data" на листе 2.
В модуле листа Sheet2:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
With Sheets("Sheet2")
Set c = .Range("data").Find(Target.Value, lookat:=xlWhole)
Set Rng = .Range(c, c.End(xlDown))
For Each cell In Rng
MsgBox cell.Value 'the code to loop
Next
End With
End If
End Sub
Когда пользователь выбирает любой элемент в проверке ячейки,
l oop начнется с выбора до конца, например: