2013-11-20 75 views
0

我有一個代碼,它查找範圍內的值並從excel單元中獲取相應的值。但我也想獲得下一列的單元格引用(單元格地址)。我怎樣才能得到這個?使用VBA代碼時使用VBA代碼獲取單元格地址

我使用VLOOKUP所獲得的價值代碼:

BCVE(i + 1) = WorksheetFunction.VLookup(A(i + 1), MySheet.Range("B2:E8"), 2, False) 

現在我需要讓我嘗試以下指數在同一行的第4列,這是E列中的單元格地址和匹配功能,但沒有運氣!它會拋出一個錯誤

"Unable to get the Match property of the WorksheetFunction Class" - Run-time error 1004. 

我試着用Application.Match替換Workfunction.Match,但它不起作用。

CellAdd1 = WorksheetFunction.Index(MySheet.Range("E2:E8"), WorksheetFunction.Match(A(i + 1), MySheet.Range("B2:E8"), 0), 4, 1) 

回答

0

Worksheetfunction.Match應該用在單個列上。您在多列範圍內使用它。

例如,如果你的變量CellAdd1是一個範圍對象,你可以找到在同一行與下一行的第4列的單元格,指的是電池的地址與CellAdd1.Address

Set CellAdd1 = Cells(WorksheetFunction.Match(A(i+1), MySheet.Range("B2:B8"), 0) +1, "E") 

我增加了「+ 1」,因爲該函數返回的項的數組中的相對位置,和您的陣列/範圍在行開始2.