gpt4 book ai didi

excel - 在 Excel VBA 中获取 #N/A

转载 作者:行者123 更新时间:2023-12-03 01:57:52 24 4
gpt4 key购买 nike

如果我在工作表单元格中使用VLOOKUP()并且找不到查找值,VLOOKUP()将返回#N/A:

enter image description here

我想在 VBA 中执行相同的操作,而不将公式放入单元格中。到目前为止我已经尝试过:

Sub FailedLookup()
Dim v As Variant
v = Application.VLookup(11, Range("A1:B10"), 2, False)
MsgBox CStr(v)
End Sub

以上返回“Error 2042”

Sub FailedLookup2()
Dim v As Variant
v = WorksheetFunction.VLookup(11, Range("A1:B10"), 2, False)
MsgBox CStr(v)
End Sub

上面抛出了1004错误

Sub FailedLookup3()
Dim v As Variant
v = Application.WorksheetFunction.VLookup(11, Range("A1:B10"), 2, False)
MsgBox CStr(v)
End Sub

上面还会抛出 1004 错误

Sub FailedLookup4()
Dim v As Variant
v = Evaluate("VLookup(11, Range(""A1:B10""), 2, False)")
MsgBox CStr(v)
End Sub

以上返回“Error 2029”

我可以通过以下方式获得#N/A:

Sub IsThisReallyNecessary()
With Range("Z100")
.Formula = "=VLookup(11,A1:B10, 2, False)"
MsgBox .Text
End With
End Sub

但这也使用了单元格。有没有简单的方法来获取 #N/A ??

最佳答案

我认为您需要明确检查该错误:

   If v = CVErr(xlErrNA) Then MsgBox "#N/A"

顺便说一句,您的 Evaluate 版本出现错误 2029 的原因是它应该是:

v = Evaluate("VLookup(11, A1:B10, 2, False)")

您还可以调整传递给Evaluate的公式:

   Dim v As Variant
v = Evaluate("IFERROR(VLookup(11, A1:B10, 2, False),""#N/A"")")
MsgBox v

(如果第二列中可能有错误值,请改用 IF(ISNA(...) 公式)

关于excel - 在 Excel VBA 中获取 #N/A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34772294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com