Ошибка является результатом того, как вы используете Find
.
Когда вы делаете это ...
RawRows = (RawData.Cells.Find(What:="*", SearchDirection:=xlPrevious).Row) - 1
Вы непосредственно читаете номер строки возвращенного диапазонана Find
. Это проблема, когда нет совпадения, потому что возвращаемый диапазон буквально равен Nothing
. Вы не можете получить номер строки из ничего;и, таким образом, ваша ошибка.
Чтобы избежать ошибки, вы должны Set
вернуть диапазон к переменной диапазона, проверить переменную на Nothing
и прочитать строку, только если переменная не Nothing
.
Sub YourSub()
Dim findInSheet As Worksheet
Dim findResult As Range
Dim rowNumber As Long
[...]
Set findResult = findInSheet.Range.Find( [...] )
If Not findResult Is Nothing Then 'a match was found
rowNumber = findResult.Row
[...]
Else 'a match was not found
[...]
End If
[...]
End Sub