与FormulaR1C1一起使用stringvariables,除非以数字开头

直到最近,我已经成功地使用下面的macros将公式写入电子表格中的单元格:

Sub insertFormula() Dim apple As String Dim orange As String apple = "Z9Y8X7" orange = "A1B2C3" ActiveCell.FormulaR1C1 = "=COUNTIFS('Data Dump'!C25, " & apple & ", 'Data Dump'!C6, " & orange & " )" End Sub 

这通常会导致以下公式出现在活动单元格中(这是我想要的)。

 =COUNTIFS('Data Dump'!$Y:$Y, Z9Y8X7, 'Data Dump'!$F:$F, A1B2C3 ) 

但是,当我更改其中一个variables时,以数字开始,例如:

 apple = "1Z9Y8X7" 

当试图执行FormulaR1C1行时,出现以下错误提示

运行时错误“1004”:应用程序定义或对象定义的错误

如果我使用带有一系列字母数字字符的string,macros总是完美运行,但只要第一个字符是数字,就会返回上述错误。

为什么是这样?

尝试在string周围添加引号:

 ActiveCell.FormulaR1C1 = "=COUNTIFS('Data Dump'!C25, " & Chr(34) & apple & Chr(34) & ", 'Data Dump'!C6, " & Chr(34) & orange & Chr(34) & " )" 

添加引号允许公式读取器将string识别为string。