从 vba 中的 vlookup 返回一个行号

Mar*_*len 4 vba vlookup

我需要知道在这种情况下使用什么代码。

我在 vba 中使用 vlookup 来定位某个记录号。然后我需要知道记录所在的行号。我尝试了以下操作,但收到错误:

nRowSavedRecord = [Vlookup(Cells(nRows, nColRecNmbr),Range("RecordInfo"),2,False).Row]
Run Code Online (Sandbox Code Playgroud)

这给了我一个“ Type Mismatch”错误。

或者

nRowSavedRecord = Application.vlookup(cells(nRows, nColRecNmbr), Range("RecordInfo"),2,False).Rows
Run Code Online (Sandbox Code Playgroud)

这给了我一个“ Object Required”错误。

我确定我缺少的东西很简单。
nRowSavedRecordLong)任何人都可以帮忙吗?

谢谢!

mar*_*tin 5

你的问题有几个问题。

  • VLookup 不是 Application 的属性,而是 Application.WorksheetFunction 的属性
  • VLookup 返回值,而不是对单元格的引用,因此您无法从中获取行

您可能想使用 Match 函数,例如像这样:

nRowSavedRecord = Application.WorksheetFunction.Match(Cells(nRows, nColRecNmbr), Range("RecordInfo"), 0)
Run Code Online (Sandbox Code Playgroud)

最后一个 0 表示这是完全匹配。您还必须确保这RecordInfo是一个一维范围