VBA公式中如何用变量表示工作表名称和单元格名称

ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(('3Data'!R2C1:R579C1=""02Incoming"")*('3Data'!R2C9:R579C9=RC3)*('3Data'!R2C2:R579C2))"
想用变量M代替工作表3Data中的3,用变量DRow代替R579中的579,写成这样:
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(('“&M&”Data'!R2C1:R"&DRow&"C1=""02Incoming"")*('“&M&”Data'!R2C9:R"&DRow&"C9=RC3)*('“&M&”Data'!R2C2:R"&DRow&"C2))"
却总是不行,指着第三个引号那里提示:缺少:语句结束。

请高手指点!

主要问题是连接符 & 与变量间没有空格。另外双引号有的是中文引号。下面改好了
ActiveCell.FormulaR1C1 = "=SUMPRODUCT(('" & M & "Data'!R2C1:R" & DRow & "C1=""02Incoming"")*('" & M & "Data'!R2C9:R" & DRow & "C9=RC3)*('" & M & "Data'!R2C2:R" & DRow & "C2))"
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
你把excel表格里面的公式写出来。
你这个用R1C1表示法里面看不出来'3Data'!R2C9:R579C9=RC3 里面的RC3表示哪一个单元格。是没法帮你改的。
而且这种表示法你用来携程VBA谁能一目了然的看明白?
用ActiveCell.Formula方法表示就好,又简单,也能看明白。后续修改也简单易行。追问

主要是初学,基本上用录制,函数公式也更熟些:)
谢谢你的讨论和建议!

本回答被网友采纳
第2个回答  2018-03-14
&的前后各加一个空格试一下
相似回答