我想从 VBA 执行 Xlookup 函数,而不在 Excel 工作表中编写公式。
返回:
运行时错误1004:无法获取worksheetfunction类的Xlookup属性
Sub searching()
Dim strSearched As String
Dim rngSearch As Range
Dim rngRenurned As Range
strSearched = "FSATA"
Set rngSearch = Sheets("asheet").Range("C:C")
Set rngRenurned = Sheets("asheet").Range("B:B")
MsgBox Application.WorksheetFunction.XLookup(strSearched, rngSearch, rngRenurned)
End Sub
会不会是参考问题?我想从 Microsoft learn 网站收集信息,但 Xlookup 似乎没有页面。
一旦您知道您的 Excel 版本支持
XLOOKUP
,如果找不到任何内容,您仍然会收到错误 1004。对此只需做两件简单的事情:
MsgBox Application.WorksheetFunctionXLookup(strSearched, rngSearch, rngRenurned, "Not found")
On Error Resume Next
MsgBox Application.WorksheetFunction.XLookup(strSearched, rngSearch, rngRenurned)
On Error GoTo 0
如果您没有
XLookUp
,那么另一种选择是索引匹配。 这里讨论速度的差异
Dim v: v = Application.Match(strSearched, rngSearch.Value, 0)
If Not IsError(v) Then
MsgBox Application.Index(rngRenurned, v)
Else
MsgBox "'" & strSearched & "' not found", vbExclamation
End If