這不是你問的問題的答案,但我懷疑這可能會幫助你避免提問。
如果你正在努力尋找,內rng
的值作爲Search
傳遞,然後返回一些通過和Column
偏移得出的值,所以沒有必要知道什麼工作表rng
是:
Excel公式(也許在細胞Sheet4 D6!):
=RelativeSearch("b",Sheet1!A1:A6,3,2)
代碼,其將搜索範圍A1:A6在Sheet爲值「b」,然後從爲3行的下方,所述細胞返回值右邊2列:
Function RelativeSearch(Search, rng As Range, Row, Column)
Dim r As Range
Set r = rng.Find(What:=Search, LookIn:=xlValues, LookAt:=xlWhole)
If r Is Nothing Then
RelativeSearch = CVErr(xlErrNA)
Else
RelativeSearch = r.Offset(Row, Column).Value
End If
End Function
(如果你希望它是與VLOOKUP
的語法一致,你將需要使用r.Offset(Row - 1, Column - 1)
而非r.Offset(Row, Column)
)
的問題是...爲什麼你需要知道什麼是紙被提及?我想不出任何真正的原因,爲什麼一個寫得好的UDF需要知道這些信息 - 你應該能夠使用'rng'作爲'Range'對象,而不用擔心它的工作表甚至是工作簿存在於。 – YowE3K
@ YowE3K我需要它來了解要查看的表單。 UDF要求提供搜索針,搜索範圍以及列和行偏移量。我發現範圍內的針和操縱範圍與偏移行和列。所以基本上這是一個「查找」,它更靈活一些,因爲它可以在表格中從相匹配的位置上下/左右移動。偏移地址不是問題,但是由於工作表沒有在地址上進行,這意味着它在sheet5上匹配並且從sheet1返回值。 – Andreas
我還沒有時間看這裏的答案,明天會這樣做,但他們都看起來是正確的。謝謝你們倆。 – Andreas