使用VBA在特定单元格中添加带变量的公式

时间:2018-01-23 14:00:35

标签: excel excel-vba formula vba

我正在尝试使用VBA将公式添加到特定单元格。公式需要包含我之前在VBA脚本中计算的变量。

公式看起来像这样:

ActiveCell.FormulaR1C1 =
"=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP,rngCell_NoUsed.Column,FALSE),""NO LTCS 
VALUE AVAILABLE"")"

rngCell.Column变量是我之前计算的变量。当我这样做时,VBA只是粘贴单元格中的纯文本,Excel本身无法使用变量后面的值,VLOOKUP会返回错误。

提前感谢您的支持。

2 个答案:

答案 0 :(得分:0)

它将您的变量粘贴为文本,因为您已将其写为文本,而不是变量。

编写"Hello someVariable"时,编译器将someVariable解释为一段文本而不是变量。

解决方案:

"Hello " & someVariable

或者你的情况:

Dim str As String
str = "=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP, " & rngCell_NoUsed.Column & ",FALSE),""NO LTCS VALUE AVAILABLE"")"
ActiveCell.FormulaR1C1 = str

您会看到我们通过添加"来关闭字符串的第一部分。然后,我们告诉编译器将(&)与变量的内容连接起来。然后我们添加另一个连接运算符,我们还添加了另一个"来表示我们再次输入纯文本。

可以通过这种方式更简单地考虑结果:
"text" & content_from_a_variable & "more text"

答案 1 :(得分:0)

完美无缺。 我已经尝试过这样做,如:

ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP," & _
rngCell_NoUsed.Column & ",FALSE),""NO LTCS VALUE AVAILABLE"")"

这也不起作用。 但我明白了。再次感谢。