Private Sub check_status_correctness(a_row)
Dim status_col_rng As Range
Dim status_val As String
Dim found_status As Range
Set status_col_rng = Sheets("Settings").Columns(2)
status_val = Sheets(MAIN_SHEET).Cells(a_row, STATUS_COL)
Set found_status = status_col_rng.Find(status_val, LookIn:=xlValues, LookAt:=xlWhole)
If found_status Is Nothing Then
Call announce_error(a_row, STATUS_COL)
End If
End Sub
Название темы классное - Как поймать ничего? Все срабатывает. Проверяете вы корректно. found_status Is Nothing , при found_status=Nothing является True.
ivanok_v2, это нарушит логику алгоритма. Мне надо отловить перехватить, когда метод Find не нашел искомое.
Проблема, похоже, вот в чем. Возвращается-то не Nothing. Возвращается объект Range. И в нем - внутри - в комментарии написано Nothing. Т.е. метод Find искал, не нашел, вернул такой объект. Что за зверь такой? По документации должен был вернуть Nothing. https://docs.microsoft.com/en-us/office/vba/api/Excel.Range.Find
Set found_status = Cells.Find(status_val, LookIn:=xlValues, LookAt:=xlWhole)
On Error Resume Next
Err.Clear
t = found_status.Value
If Err Then
VBA.MsgBox "отловил))", vbInformation
End If
On Error GoTo 0