Ошибка 91 (переменная объекта или переменная блока не установлена) после использования команды find - PullRequest
0 голосов
/ 24 января 2019

У меня есть код в VBA, который работал должным образом до закрытия книги, но когда я открыл эту книгу на следующий день, показывая

ошибка 91: переменная объекта или переменная блока не установлена ​​

Я не могу понять, что случилось.

enter image description here

Private Sub ComboBox1_Change()
Dim hq As String, asheet As Worksheet, acell As Range
Dim lrow As Double, test As String
Set asheet = ThisWorkbook.Sheets(1)
hq = ComboBox1.Value
Debug.Print hq
Set acell = asheet.Range("$Y$1:$EZ$95").Find(what:=hq, LookIn:=xlValues,     lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False)
Debug.Print acell.Column
asheet.Activate
Cells(1, acell.Column).Select
Selection.End(xlDown).Select
lrow = Selection.Row + 1
ThisWorkbook.Sheets(2).Activate

End Sub

1 Ответ

0 голосов
/ 24 января 2019

Сообщение об ошибке

ошибка 91: переменная объекта или переменная блока не установлена ​​

означает, что переменная acell равна Nothing, потому что метод find() ничего не нашел! После использования find вам необходимо проверить, был ли он успешным:

If Not acell Is Nothing Then
    'something was found
    Debug.Print acell.Column
Else
    'nothing was found
    Debug.Print "find returned nothing"
End If

Для дальнейшего изучения вашей проблемы Отладка вашего кода и проверка значений ваших переменных. Например, переменная hq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...