公式给出了错误,当我添加“文本”

我正在尝试编写一个macros来完成报告的格式化。 在我尝试创build交易参考号之前,这一切都很顺利。

公式基本上去= A2&“ – ”&B2&“ABCD”

当我插入到我的macros它变成

范围(“C2”)。Formula =“= A2&” – “&B2&”ABCD“”

只要我在末尾添加连字符或字母,就会给我“编译错误:预期:语句结束”

我究竟做错了什么?

编辑:所以输出将是contentOfA2-contentOfB2 ABCD

尝试这个。 在string内添加引号时,将引号加倍,以便程序知道您不是简单地结束string。

 Range("c2").Formula = "=A2 & ""-"" & B2 & ""ABCD""" 

例..

 Range("A1").value = "adding a quote inside a string ""so and so said something"" is like this." 

输出:在一个string中添加一个引号“so and so said something”就是这样。

尝试做到相反 – 例如在Excel中写入公式如下: 在这里输入图像说明

然后select公式并在VBA中写入以下内容:

 Public Sub TestMe() Debug.Print Selection.Formula End Sub 

在直接的窗口你会有这样的: =A2&"-"&B2&"abcd"这个input应该被编辑了一下,因为它来自控制台,你需要转义。“像这样: "=A2 & ""-"" & B2 & ""abcd"""

您可以通过编写Debug.Print Selection.FormulaR1C1来进一步阐述,如果您需要的话。

最后,你可以使用这样的东西来避免括号的计数。 这将工作正常:

 Public Sub PrintMeUsefulFormula() Dim strFormula As String Dim strParenth As String strParenth = """" strFormula = Selection.Formula strFormula = Replace(strFormula, """", """""") strFormula = strParenth & strFormula & strParenth Debug.Print strFormula End Sub 

它将单引号更改为双引号,然后将公式放在引号中。 在我的代码中,它是代码strParenth