我有一個excel公式,我經常用它來做VLookup
。它有一個嵌入式Index/Match
,它給出「M」列中的最後一個數值。
工作表式是這樣的:在Excel中使用索引和匹配VBA VLookup函數
=VLOOKUP(INDEX($M$10:$M75,MATCH(9.99999999999999E+307,$M$10:$M75)),Data,4)
細胞$M75
是所述行這個公式中的細胞有數字,非數字和空白細胞在M列,但ID的,我想是總是數字。 。
所以我想寫一個自定義的功能,它可以讓我簡單地寫=current()
以下是我有:
Function Current()
Dim LookupRange As Variant
Dim indexVar As Variant
LookupRange = Range("$M$1:M" & ActiveCell.Row)
indexVar = Application.Index(Range(LookupRange), Application.Match(9.99999999999999E+307, Range(LookupRange)))
Current = Application.WorksheetFunction.VLookup(indexVar, Worksheets("Info").Range("Data"), 4)
End Function
我一直在使用不同的變量類型(字符串,長,變嘗試)但我似乎無法獲得該功能的工作。
我不知道這是否足夠的信息,但任何人都可以看到我是否失去了一些東西?
我只得到#VALUE!
使用Excel 2013在Windows 7
在進入VBA之前,你的excel函數返回正確的結果嗎? – sam092
單步執行代碼並確定** 1)**是分配給「LookupRange」的值是否正確? ** 2)**是否正確指定給'indexVar'的值? –
@ sam092 - 我的原始公式正確運行。 – Brad