我正在尝试使用R1C1格式创建一个公式,该格式将根据包含变量的字符串进行更改。我已经尝试创建字符串并在公式中输入它,以及在公式中创建字符串,似乎没有工作。以下是我的代码:
Dim NewXX As Integer
Dim NewXX1 As Integer
Dim CE As Integer
Dim PrevCE As Integer
Dim CEText As String
CE = Cells(NewXX - 1, 1).Value + 1
CEText = "=" & CE
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R[-209]C8:R[1]C8,R[-209]C1:R[1]C1,CEText,R[-209]C2:R[1]C2,""<>Summary"")*(1+R1C16)"
CEText是每次运行宏时都会更改的变量。我试过的一些事情: CEText “” CEText “”, ' “&安培; CEText&安培;”', “CEText” “”= “” “&安培; CE&安培;”, “”= “” CE,
所有这些试验都会给我一个'预期:结束声明'错误,或者单元格中显示的公式与代码中的文本(非值)匹配。
任何帮助将不胜感激!我对VBA相当陌生,我总是想学习更好的做事方式! 谢谢!
答案 0 :(得分:0)
CEText
,因为CE是一个数字,我们只需要担心从公式字符串中移除并连接:
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R[-209]C8:R[1]C8,R[-209]C1:R[1]C1," & CE & ",R[-209]C2:R[1]C2,""<>Summary"")*(1+R1C16)"
如果你想要CEText
,那么我们在公式中使用额外的引号:
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R[-209]C8:R[1]C8,R[-209]C1:R[1]C1,""" & CEText & """,R[-209]C2:R[1]C2,""<>Summary"")*(1+R1C16)"
主要问题是任何vba变量必须在引号之外并与&