当我添加" text"时,公式会出错。

时间:2017-03-27 15:19:26

标签: excel vba formula

我正在尝试编写一个可以对报告进行格式化的宏。一切顺利,直到我尝试创建交易参考编号。

公式基本上是= A2& " - " &安培; B2& " ABCD"

当我将其插入到我的宏中时,它变为

范围(" C2")。公式=" = A2& " - " &安培; B2& " ABCD""

一旦我添加了连字符或末尾的字母,它就会给我"编译错误:预期:结束语句"

我做错了什么?

编辑:因此输出将是contentOfA2-contentOfB2 ABCD

2 个答案:

答案 0 :(得分:2)

试试这个。在字符串中添加引号时,将引号加倍,以便程序知道您不是简单地结束字符串。

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

实施例..

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

输出:在字符串中添加引号“所以说出来的东西”是这样的。

答案 1 :(得分:0)

尝试逆转 - 例如在excel中编写公式,如下所示: enter image description here

然后选择公式并在VBA中写下以下内容:

Public Sub TestMe()

    Debug.Print Selection.Formula

End Sub

在直接窗口中你会有这样的: =A2&"-"&B2&"abcd" 此输入应该稍微编辑一下,因为它来自控制台,您需要转义"。像这样: "=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

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

相关问题