关于VBA中双引号和字符串连接的问题

关于VBA中双引号和字符串连接的问题,vba,Vba,当我想添加双引号并同时使用串联时,我感到困惑 我知道如果我想显示双引号,我可以使用““a”,它会打印“a”,因为“a”是字符串,两对双引号会让机器知道我们想显示一对 但我不了解以下情况: Sub test() Dim aVar As String Dim bVar As String Dim Parameters As String: Parameters = "a" aVar = "param builtin=""" & "gaussian"""

当我想添加双引号并同时使用串联时,我感到困惑

我知道如果我想显示双引号,我可以使用““a”,它会打印“a”,因为“a”是字符串,两对双引号会让机器知道我们想显示一对

但我不了解以下情况:

Sub test()
    Dim aVar As String
    Dim bVar As String
    Dim Parameters As String: Parameters = "a"
    aVar = "param builtin=""" & "gaussian"""
    bVar = """" & Parameters & """"
    Debug.Print aVar 'print, param builtin="gaussian"
    Debug.Print bVar 'print, "a"
End Sub
在上面的例子中,对于aVar来说,当“和”一起出现时,我会感到困惑。我不知道为什么我们不使用“param builtin=“&”“gaussian”“”,这对我来说更有意义。它们之间的区别是什么,为什么这也起作用

对于bVar,为什么我们有4对双引号,但只打印“a”。在我的理解中,我们应该打印“a”


有人能帮我解释一下这两种情况吗?谢谢!

让我困惑的是,为什么你不直接使用
aVar=“param builtin=”“gaussian”“”
,而完全放弃连接。我猜想早期版本的代码看起来更像
aVar=“param builtin=”“&SomeVariable&“gaussian”“
而不是…”。。?对于
bVar
,您可能还想阅读关于转义字符串的问题(这是针对PHP的,但同样的原因也适用,即使应用程序略有不同)-请参阅
Debug.Print”“”“&“”
返回的内容。或者只是
Debug.Print”“
。谢谢BigBen,我明白你说的了。因为我读了别人的代码。我现在明白了,谢谢你!您还可以使用
Chr(34)
string(2,34)
,它们仍然需要对齐,但不要将问题与
混淆?chr(34)=“?字符串(2,34)=”