2012-12-10 194 views
3

我需要知道在這種情況下使用什麼代碼。從vlookup返回一個行號vba

我使用VLOOKUP在VBA中找到一定的記錄數。然後我需要知道記錄位於我曾嘗試以下哪行號,卻收到錯誤:

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」 的錯誤。

我敢肯定,不管我缺少的是簡單的。
nRowSavedRecordLong) 誰能幫助?

謝謝!

回答

4

有你的問題的幾個問題。

  • VLOOKUP不是應用的屬性,但Application.WorksheetFunction的
  • VLOOKUP返回值,而不是引用的單元格,所以你不能從它那裏得到

你可能想使用行匹配功能,例如像這樣:

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

最後0表示這是完全匹配。您還必須確保RecordInfo是一維範圍

+0

使用Application.VLookup代替Application.WorksheetFunction.VLookup可以取而代之,這取決於您喜歡如何處理搜索項不在查找表中。 –

+0

@馬丁 - 這工作完美!謝謝。 :o) - 瑪麗艾倫 –