連線運算子

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 型別時,因此通常只應使用 & 運算子進行連線。