2016-07-21 3 views
0

Я взял на себя чужой макрос, который покинул организацию. Я получаю следующую ошибку, указанную в заголовке с ошибкой времени выполнения.Ошибка времени выполнения VBA 91. Устранение неполадок объекта переменной отладки

Ниже приведен код, который говорит мне об отладке. Проблема в том, что это мой первый раз для макросов VBA, и я не уверен, с чего начать эту ошибку.

Любая помощь будет замечательной, поскольку я не могу пройти мимо этой точки.

Cells.Find(What:="Top 10 Rank", After:=ActiveCell, LookIn:=xlValues, _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, _ 
     SearchDirection:= xlNext, MatchCase:=False, _ 
     SearchFormat:=False).Activate 
+0

Возможный дубликат [Excel VBA range.find шалят] (http://stackoverflow.com/questions/21403916/excel-vba-range-find-acting-up) –

ответ

1

Если значение не найдено в области поиска, то вы получите сообщение об ошибке, так что лучше разделить код на отдельные операции:

Dim f As Range 
Set f = Cells.Find(What:="Top 10 Rank", After:=ActiveCell, LookIn:=xlValues, _ 
        LookAt:=xlPart, SearchOrder:=xlByRows, _ 
        SearchDirection:= xlNext, MatchCase:=False, _ 
        SearchFormat:=False) 

If Not f Is nothing Then 
    'do somthing with f 
Else 
    Msgbox "not found!" 
End If 
+0

Спасибо за помощь. –

+0

@MarkMeiring при переполнении стека (и обмен файлами в целом) лучшим «спасибо» является галочка. Посмотрите значок зеленого значка под кнопками «вверх/вниз»? Дайте ему немного любви, вы получите +2 за это и расскажите миру «это! Это прямо здесь, смотрите! Это ответ!» –

1

не было найдено никаких данных, так .Find возвратила нулевой объект (Nothing в VBA), как описано в этом Microsoft Support page:

Этот макрос ошибка возникает, так как Основной метод Визуальный поиск возвращает значение NULL что делает невозможным активацию клетки.

Смежные вопросы