連線運算子
VBA 支援 2 個不同的連線運算子+
和 &
,當與 String
型別一起使用時,它們都執行完全相同的功能 - 右手 String
附加到左手 String
的末尾。
如果 &
運算子與 String
之外的變數型別一起使用,則在連線之前將其隱式地轉換為 String
。
請注意,+
連線運算子是+
加法運算子的過載。+
的行為由運算元的變數型別和運算子型別的優先順序決定。如果兩個運算元都被輸入為 String
或 Variant
,子型別為 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
型別時,因此通常只應使用 &
運算子進行連線。