VBA停止错误恢复下一次抛出#N / A

时间:2019-01-11 09:20:37

标签: excel vba error-handling

我需要作为较大过程的一部分进行vlookup,但是当找不到匹配项时,代码将失败。我已经尝试了几种解决方案,但没有任何效果。我不能只在工作表上使用公式,因为它是我需要自动化的更大过程的一部分。

  1. 我将vlookup放在其自己的命令按钮中,并使用了On Error Resume Next。这会在没有匹配项的单元格中抛出#N / A,并且此错误消息阻止了后续步骤的运行。我在if语句和Cells.Replace(“#N / A”,“”,xlWhole)中尝试了Cells(i,33).Value =“”,但是这些都不起作用。有没有一种方法可以使这些单元格为空白,以便其余代码可以正常工作?

  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结果

0 个答案:

没有答案