在VBA中执行Xlookup

问题描述 投票:0回答:2

我想从 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 vba xlookup
2个回答
1
投票

一旦您知道您的 Excel 版本支持

XLOOKUP
,如果找不到任何内容,您仍然会收到错误 1004。对此只需做两件简单的事情:

  1. 按照VBasic2008的建议提供第四个参数:
MsgBox Application.WorksheetFunctionXLookup(strSearched, rngSearch, rngRenurned, "Not found")
  1. 忽略该行的错误。但请注意,如果没有找到任何内容,您将看不到消息框:
On Error Resume Next
MsgBox Application.WorksheetFunction.XLookup(strSearched, rngSearch, rngRenurned)
On Error GoTo 0

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
© www.soinside.com 2019 - 2024. All rights reserved.