连接运算符

VBA 支持 2 个不同的连接运算符+&,当与 String 类型一起使用时,它们都执行完全相同的功能 - 右手 String 附加到左手 String 的末尾。

如果 & 运算符与 String 之外的变量类型一起使用,则在连接之前将其隐式地转换为 String

请注意,+连接运算符是+加法运算符的重载。+的行为由操作数的变量类型和运算符类型的优先级决定。如果两个操作数都被输入为 StringVariant,子类型为 String,则将它们连接起来:

Public Sub Example()
    Dim left As String
    Dim right As String
    
    left = "5"
    right = "5"
    
    Debug.Print left + right    'Prints "55"
End Sub

如果一方是数字类型而另一方是可以强制转换为数字的 String,则数学运算符的类型优先级会导致运算符被视为加法运算符并添加数值:

Public Sub Example()
    Dim left As Variant
    Dim right As String
    
    left = 5
    right = "5"
    
    Debug.Print left + right    'Prints 10
End Sub

此行为可能导致细微的,难以调试的错误 - 尤其是在使用 Variant 类型时,因此通常只应使用 & 运算符进行连接。