我希望能夠定義一些變量並將它們放在一個vlookup公式中。我在下面概述了一個我試圖實現的簡單例子。但是我不斷收到'438'錯誤信息。使用變量引用的Vlookup
我已經把原始的vlookup放在沒有變量的情況下,並且在變量中沒有使用vlookup。任何輸入將不勝感激。我相信我有正確定義的變量,但我認爲這與我在公式中調用它們的方式有關。
Sub Macro1()
Dim Lookupcolumn As Range
Dim columnletter_start As String
Dim columnletter_End As String
columnletter_start = ActiveCell.offfet(0, 1).Value
columnletter_End = ActiveCell.offfet(0, 2).Value
Set Lookupcolumn = Sheets("Pricing Analysis").Cells.Find(What:="Cusip", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
'ActiveCell.FormulaR1C1 = "=VLOOKUP(R[1]C[-8],'CS Primeview'!C[-6]:C[-4],3,FALSE)"
ActiveCell.FormulaR1C1 = "=VLOOKUP(Lookupcolumn,'CS Primeview'columnletter_start:columnletter_End,3,FALSE)"
End Sub
你需要做這樣的'ActiveCell.FormulaR1C1 = 「= VLOOKUP(Lookupcolumn, 'CS Primeview'」 &columnletter_start& 「:」 &columnletter_End& 「3,FALSE)」' - 否則該公式使用變量的名稱而不是其內容。 – MattCrum
謝謝馬特的建議。對於我設定爲範圍的'Lookupcolumn',它只是將它看作實際的「lookupcolumn」而不是範圍 - 你知道我做了什麼來糾正嗎?再次感謝。 – user1624926
啊,我錯過了 - 同樣的問題再次...你需要從雙引號中刪除。像這樣:'ActiveCell.FormulaR1C1 =「= VLOOKUP(」&Lookupcolumn&「,'CS Primeview'」&columnletter_start&「:」&columnletter_End&「,3,FALSE)」'。如果它本身不適用於範圍參考,您可能還需要使用LookupColumn.Address。 – MattCrum