2015-08-14 3 views
1

Я использую симуляцию Ctrl + F с помощью макросов для поиска определенного номера из листа, я добавил сообщение об ошибке следующего кода, если ему не удалось найти значение, но обработка ошибок не работает, я получаю следующее сообщение.On Error Resume next not working VBA

enter image description here

Вот код:

Sheets("Not filled").Activate 

    On Error Resume Next 

    Cells.Find(what:=refnumber, After:=ActiveCell, LookIn:=xlFormulas, _ 
    lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False).Activate 
+0

как это сделать в VBA? – Anarach

+2

Возможный дубликат [Break in Class Module vs. Break on Unhandled Errors (VB6 Error Trapping, Options Setting in IDE)] (http://stackoverflow.com/questions/12687105/break-in-class-module-vs-break -on-unhandled-errors-vb6-errors-trapping-options) – GSerg

ответ

1

Вы по-прежнему пытаетесь найти .Activate (НЕ) найденную ячейку.

Dim fnd As Range, refnumber As Long 

refnumber = 123 

With Sheets("Not filled") 
    .Activate 
    On Error Resume Next 
    Set fnd = .Cells.Find(what:=refnumber, After:=ActiveCell, LookIn:=xlFormulas, _ 
     lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
     MatchCase:=False, SearchFormat:=False) 
    On Error GoTo 0 
    If Not fnd Is Nothing Then 
     fnd.Select 
    Else 
     MsgBox "Not found :(" 
    End If 
End With 

Эта попытка SetRange object найденного места. Если ничего не было, fnd var ничего.

+2

Хотя это объясняет ошибку @Anarach, конечно, она не объясняет, почему «on error resume next» не подавил ее? –

+0

@MarkButler Точно, мой код работал вчера .. отлично сегодня его показ этой странной ошибки – Anarach

+0

@Anarach OK, два вопроса: 1) Какая настройка для обработки ошибок в 'Tools> Options> General> Error Trapping'? –

0

Есть две возможности:

  • Ломать на ошибки могли быть превращены обратно, используя On Error GoTo 0 заявление.

  • Нарушение на всех ошибках вариант могут быть выбраны в Ошибки Ловушки раздела опции VBA редактора (проверить это меню Инструментов> Параметры> Общие> Ошибка Ловушка на VBA редактор меню). Если этот параметр выбран, компилятор VBA разбивается на все ошибки независимо от того, какая логика обработки ошибок применяется.

+0

Мой код работал вчера – Anarach

+0

Привет, У вас есть идея, почему обработчик ошибок будет работать вчера, а не сегодня внезапно после перезагрузки компьютера. – Anarach

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