【问题标题】:Quotation Marks VBA [duplicate]引号VBA [重复]
【发布时间】:2014-07-14 13:45:34
【问题描述】:

我正在创建一个将公式输入到单元格中的函数。但我不断收到语法错误。我知道这是由于引号引起的。我想知道如何在函数中包含公式的引号而不会导致语法错误。

任何帮助将不胜感激。

Sub codedump()


      Range("A1").Value = "=Dump(GoogleAnalytics("ga:78770227", "ga:visits", "2014-05-28", "2014-06-26", "","", "", "", 500, FALSE, FALSE))"

End Sub

【问题讨论】:

  • 用两个双引号将其转义。所以带引号的字符串看起来像""""

标签: vba excel


【解决方案1】:

使用转义

例如,"" 给出一个引号。否则,使用字符代码

Sub codedump()

      Range("A1").Value = "=Dump(GoogleAnalytics(""ga:78770227"", ""ga:visits"", ""2014-05-28"", ""2014-06-26"", """","""", """", """", 500, FALSE, FALSE))"

End Sub

来自http://msdn.microsoft.com/en-us/library/267k4fw5(v=vs.85).aspx

替代方案:

'Escaping
Private Sub InsertQuote()
   TextBox1.Text = "She said, ""You deserve a treat!"" "
End Sub

'Character code
Private Sub InsertAscii()
   TextBox1.Text = "She said, " & Chr(34) & "You deserve a treat!" & Chr(34)
End Sub

'Defined string
Const quote As String = """"
TextBox1.Text = "She said, " & quote & "You deserve a treat!" & quote

【讨论】:

    【解决方案2】:

    您需要将引号括在引号中,以使它们出现在工作表上。比如:

    Range("A1").Value = "=Dump(GoogleAnalytics(""ga:78770227"", ""ga:visits"", ""2014-05-28"", ""2014-06-26"", """","""", """", """", 500, FALSE, FALSE))"
    

    应该可以解决问题。

    【讨论】:

      【解决方案3】:

      使用

       Chr(34) & Chr(34)
      

      代替

       ""
      

      34 是 " 的 ASCII 字符代码,VBA 在构建字符串时会将 Chr(34) 转换为 "。

      【讨论】:

      • VBA 使用 Unicode,因此 ASCII 字符代码不相关。当然,按照设计,Unicode 是 ASCII 的超集,对常见字符使用相同的字符代码。
      • 很高兴知道。我通常只使用 ASCII 列表,因为它更小,而且我不需要太多其他内容。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2016-06-20
      • 1970-01-01
      相关资源
      最近更新 更多