String 除非字符串变量以数字开头,否则将其与公式1c1一起使用是有效的

String 除非字符串变量以数字开头,否则将其与公式1c1一起使用是有效的,string,vba,excel,String,Vba,Excel,直到最近,我一直成功地使用以下宏将公式写入电子表格中的单元格: 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 & " )"

直到最近,我一直成功地使用以下宏将公式写入电子表格中的单元格:

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
这通常会导致以下公式出现在活动单元格中(我希望它这样做)

但是,当我更改其中一个变量,使其以数字开头时,例如:

apple = "1Z9Y8X7"
在尝试执行FormulaR1C1行时,出现以下错误提示

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

如果我使用带有一系列字母数字字符的字符串,宏总是可以正常运行,但是,只要第一个字符是数字,它就会返回上述错误


为什么会这样?

尝试在字符串周围添加引号:

ActiveCell.FormulaR1C1 = "=COUNTIFS('Data Dump'!C25, " & Chr(34) & apple & Chr(34) & ", 'Data Dump'!C6, " & Chr(34) & orange & Chr(34) & " )"
添加引号允许公式读取器将字符串识别为字符串

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