如何在字符串字面值中添加双引号

14

示例代码:

Dim a As String
a = 1234,5678,9123
我想在变量a中添加双引号。

期望输出:

a = "1234,5678,9123"

我该如何格式化字符串,以便在打印时字符串周围有双引号?


可能是在VB字符串中转义双引号的重复问题。 - GSerg
这只是在VB源代码中吗?还是说还有其他的东西?显而易见的问题是,为什么你不能直接输入这个?你能提供更多的上下文吗——这是需要重构的代码吗?我们在这里谈论的实例有多少?所有变量都声明为“Dim a as string”吗?还有什么其他的限制条件吗? - Chris J
7个回答

28
如果你想在字符串中包含 ",请在你想要引号出现的位置提供 ""。所以你的例子应该写成...
a = """1234,5678,9123"""

18

当前的答案是正确和有效的,但有时以下方法可以提高可读性:

a = Chr$(34) & "1234,5678,9123" & Chr$(34)

2
我没有投反对票,但那并不更易读!所有开发者都需要了解整个ASCII字符编码集吗?创建一个常量并将其分配给该值;然后,只需使用该常量即可。 - UnhandledExcepSean
6
我只是说“可以” - 只是为了给提问者另一个选择。我并没有说这是最佳实践。你可以在这里找到 ASCII 字符集(http://www.asciitable.com/)- 这样你就不必记忆它了。 - Matt Wilko
6
我看到“Chr(34)”随处可见,不确定问题出在哪里。 - JimmyPena
3
由于您不必确保每个引用都是双倍,因此这篇文章要读起来容易得多。而且,该字符串使用简单明了的英文呈现。 - surfasb
2
创建一个全局常量: Public Const vbDoubleQuote As String = """" '代表一个双引号(")并像这样使用它:a = vbDoubleQuote&"blabla"&vbDoubleQuote - gicalle
显示剩余3条评论

11

为了使Chr$(34)更易读:

Dim quote as string
quote = Chr$(34)
a = quote & "1234,5678,9123" & quote

这样可以更容易地在各处获得正确数量的“符号”,并且易于阅读。


7
a = """1234,5678,9123"""

或者

a= """" & a & """"

如果 a 被定义为字符串类型,那么 + 就可以使用。但是,如果他们在其中使用数字变量或文字,那么 + 应该改为 &,或者将值传递给 CStr() 函数。 - Deanna
@MattWilko 抱歉 :) 我已经更新了答案,仍然使用 & - Deanna

1
您只需使用Chr$(34)插入双引号。

例如:

Dim i as String

i = Chr$(34) & "Hello World" & Chr$(34) 'Shows "Hello World"

0


不需要添加任何复杂的函数,只需使用以下示例将双精度数插入文本框或富文本框即可。

Dim dquot=""""
TextBox1.AppendText("Hello " &dquot &"How are you ?" &quot)

或者

Dim dquot=""""
RichTextBox1.AppendText("Hello " &dquot &"How are you ?" &quot)

-2
我使用了Chr $(34)方法,就像这样:
Sub RunPython()
    Dim scriptName As String
    Dim stAppName As String
    scriptName = ActiveWorkbook.Path & "\aprPlotter.py"
    stAppName = "python.exe " & Chr$(34) & scriptName & Chr$(34)
    Debug.Print stAppName
    Call Shell(stAppName, vbHide)
End Sub

我在使用Python脚本时,使用了与Excel工作簿相同的路径,以使用户更容易操作。在找到这个线程之前,我花了45分钟来调整引号。当路径来自活动工作位置(特别是Windows中带有空格的位置)时,我认为这是一种首选方法。希望这能帮助其他人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接