将variables传递到VBA中的VLOOKUP
我有这个代码:
currName = "string" 'unused cellNum = [VLOOKUP("string", '2012'!A:M, 13, FALSE)]
但我需要用名为currName
的VBA代码中的variablesreplace"string"
。 我试过这个:
currName = "string" 'used cellNum = [VLOOKUP(currName, '2012'!A:M, 13, FALSE)]
什么是适当的语法? 当我尝试使用variables的第二部分时,我得到的问题是它返回无效的数据(就像我input回到单元格,它是#NAME?
)。 currName
只是等于“string”。 在没有使用variables的情况下,它在第一个例子中工作正常。
之前我还没有看过方括号。 通常这些是Range
对象的快捷方式。 我能够复制你的错误条件。
你可以使用这样的东西,而不是。 这两个分配到cellNum
没有错误的工作:
Sub Test2() Dim wsFunc As WorksheetFunction: Set wsFunc = Application.WorksheetFunction Dim ws As Worksheet: Set ws = Sheets("Sheet1") Dim rngLook As Range: Set rngLook = ws.Range("A:M") Dim cellNum As Range Dim currName As String currName = "string" 'unused Set cellNum = ActiveCell cellNum = wsFunc.VLookup("string", rngLook, 2, False) cellNum = wsFunc.VLookup(currName, rngLook, 2, False) End Sub
使用Evaluate
function。 公式本身就是一个string,所以你必须把所有东西连接成一个string:
cellNum = Evaluate("VLOOKUP(""" & currName & """, '2012'!A:M, 13, FALSE)")