Почему выходит переменная не установлена? - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема, при попытке отладки этой кодировки она появится

RUNTIME ERROR 91;ПЕРЕМЕННЫЙ ОБЪЕКТ ИЛИ С ПЕРЕМЕННОЙ БЛОКА НЕ УСТАНОВЛЕНО

, и он также выделит в этой строке

Range("L8").Value = Cells(2, FindMe.Column).

Могу ли я узнать, в чем заключается ошибка?

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+Shift+A
'
    Set Searchme = Range("L9")
    Set FindMe = Range("A2:G126").Find(What:="Searchme", LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
        Range("L8").Value = Cells(2, FindMe.Column)

    Range("A1:G126").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "L8:L9"), CopyToRange:=Range("N8:T8"), Unique:=False

End Sub

1 Ответ

0 голосов
/ 03 октября 2018

Значение, которое вы пытаетесь найти, не существует в диапазоне.

Попытайтесь обернуть ваш код, если условие проверяет, возвращает ли функция что-нибудь или нет!

Sub test()
    Set Searchme = Range("L9")
    Set FindMe = Range("A2:G126").Find(What:="Searchme", LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)



If FindMe Is Nothing Then
    MsgBox "No value found."
    'or you can negate the condition like "If Not" if you want to continue and remove the else part.
Else
  Range("L8").Value = Cells(2, FindMe.Column)
  Range("A1:G126").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "L8:L9"), CopyToRange:=Range("N8:T8"), Unique:=False
End If

End Sub
...