4

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

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

nRowSavedRecord = [Vlookup(Cells(nRows, nColRecNmbr),Range("RecordInfo"),2,False).Row]

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

或者

nRowSavedRecord = Application.vlookup(cells(nRows, nColRecNmbr), Range("RecordInfo"),2,False).Rows

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

我敢肯定,我所缺少的一切都很简单。
nRowSavedRecord是一个Long)有人可以帮忙吗?

谢谢!

4

2 回答 2

5

你的问题有几个问题。

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

您可能想使用 Match 功能,例如:

nRowSavedRecord = Application.WorksheetFunction.Match(Cells(nRows, nColRecNmbr), Range("RecordInfo"), 0)

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

于 2012-12-10T18:16:19.533 回答
2

您是否尝试过使用匹配功能?

http://office.microsoft.com/en-gb/excel-help/match-function-HP010062414.aspx

于 2012-12-10T18:13:03.937 回答