Ошибка остановки VBA, возобновление следующего выброса # N / A - PullRequest
0 голосов
/ 11 января 2019

Мне нужно сделать vlookup как часть более крупного процесса, но код завершается ошибкой, когда не найдено совпадений. Я пробовал несколько решений, но пока ничего не получалось. Я не могу просто использовать формулу на листе, потому что это часть более крупного процесса, который мне нужно автоматизировать.

  1. Я поместил vlookup в его собственную командную кнопку и использовал On Error Resume Next. Это выдает # N / A в ячейках без совпадения, и это сообщение об ошибке препятствует выполнению следующих шагов. Я пробовал Cells (i, 33) .Value = "" в операторе if и Cells.Replace ("# N / A", "", xlWhole), но ни один из них не сработал. Есть ли способ сделать эти ячейки пустыми, чтобы остальная часть моего кода могла работать?

  2. У меня vlookup в одном макросе с остальным кодом. По какой-то причине из-за этого ячейки с ошибками оставались пустыми, но переменная BP, очевидно, не очищалась, поэтому ячейки, которые на самом деле не имели совпадения, заполнялись предыдущим совпадением, пока не было найдено новое.

Может ли кто-нибудь указать мне правильное направление, потому что на этом этапе я иду кругами?

For i = 2 To endrow
Acc = Application.Cells(i, 30)
On Error Resume Next 'skips to next loop when no match is found
BP = Application.VLookup(Acc, Sheet5.Range("A2:C307046"), 3, False) 'does a vlookup in CAIM file
    Cells(i, 33).Value = BP
Next i

* больше кода здесь зависит от результатов vlookup

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