我正在尝试编写一个可以对报告进行格式化的宏。一切顺利,直到我尝试创建交易参考编号。
公式基本上是= A2& " - " &安培; B2& " ABCD"
当我将其插入到我的宏中时,它变为
范围(" C2")。公式=" = A2& " - " &安培; B2& " ABCD""
一旦我添加了连字符或末尾的字母,它就会给我"编译错误:预期:结束语句"
我做错了什么?
编辑:因此输出将是contentOfA2-contentOfB2 ABCD
答案 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)
然后选择公式并在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
。