Обрабатываю данные в диапазонах. Пока находятся значения, цикл продолжается. Как только не находится, переходит по метке и на выход. А как вернуться обратно в цикл.
Спойлер
On Error GoTo strERR
For i = 1 To 9
Set rngAll = rngStart.CurrentRegion
Nrow = rngAll.Rows.Count
rngAll.Find(What:="Лютик").Activate
Set rngStart = rngStart.Offset(Nrow + 1, 0)
Next i
Exit Sub
strERR:
MsgBox ("Что-то не то")
End Sub
Код
Sub Макрос()
Dim found As Boolean
For i = 1 To 9
' Присваиваем таблице имя 'rngAll'.
Set rngAll = rngStart.CurrentRegion
' Включение перехватчика ошибок, т.к. если не будет найдено, то будет ошибка.
On Error Resume Next
' Поиск.
rngAll.Find(What:="Лютик").Activate
' Смотрим, произошла ошибка или нет. Если ошибка не произошла,
' то записываем True в переменную 'found'.
If Err.Number = 0 Then
found = True
End If
' Отключение перехватчика ошибок, чтобы отлавливать непредвиденные ошибки.
On Error GoTo 0
' Смотрим, было найдено или нет.
' Если было найдено.
If found = True Then
' Сброс переменной, если планируется продолжить цикл.
' Чтобы в следующем витке цикла понять, было найдено или нет.
found = False
' действия
' Если не было найдено.
Else
' действия
End If
' Переход к следующей таблице.
Nrow = rngAll.Rows.Count
Set rngStart = rngStart.Offset(Nrow + 1, 0)
Next i
End Sub
Спасибо. Работает.