我有这段代码:
currName = "string" 'unused
cellNum = [VLOOKUP("string", '2012'!A:M, 13, FALSE)]
但我需要将"string"
替换为名为currName
的VBA代码中的变量。我试过这个:
currName = "string" 'used
cellNum = [VLOOKUP(currName, '2012'!A:M, 13, FALSE)]
什么是合适的语法?当我使用变量尝试第二部分时,我得到的问题是它返回无效数据(就像我将其输入一个单元格,它是#NAME?
)。 currName
简单地等于“字符串”。它在第一个例子中没有使用变量就可以正常工作。
答案 0 :(得分:3)
我之前没见过以这种方式使用的方括号。通常这些是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
答案 1 :(得分:1)
使用Evaluate
功能。公式本身就是一个字符串,因此您必须将所有内容连接成一个字符串:
cellNum = Evaluate("VLOOKUP(""" & currName & """, '2012'!A:M, 13, FALSE)")