【发布时间】:2018-07-24 08:07:47
【问题描述】:
我有以下代码,当在 Vlookup 公式中发现错误时,我无法跳到下一个交互 (i)。它给了我错误“编译错误子或未定义函数”
例如,如果 Vlookup 公式在第二次交互 (i=2) 中出现错误,则代码应跳过下一行代码并转到下一次交互 (i=3)
For i = 1 To 10:
If Range("A" & i).Value = "" Then
Else
On Error GoTo Handler
datavalue = Application.WorksheetFunction.VLookup(Sheets("DataManipulation").Range("A" & i), Sheets("ExtractQ1").Range("A1:G1048576"), 4, False)
Sheets("DataManipulation").Range("B" & i).Value = datavalue
Handler:
Next i
End If
Next i
【问题讨论】:
-
如果您使用
Dim datavalue as variant,您可以使用iserror(datavalue)存储和测试错误——但您需要使用Application.vlookup()而不是Application.worksheetfunction.vlookup(),这样错误不会破坏代码。但是,我的评论与您遇到的错误都不匹配。 -
另外,检查这两个工作表/范围(查找值和查找表)是否存在。看看您是否可以最小化查找表的范围,因为现在您似乎正在检查至少 100 万个单元格。
标签: vba for-loop error-handling