&
равно всегда , вычисляемое в контексте строки, в то время как +
может не объединяться, если один из операндов не является строкой:
"1" + "2" => "12"
"1" + 2 => 3
1 + "2" => 3
"a" + 2 => type mismatch
Это просто тонкий источник потенциальных ошибок, поэтому его следует избегать. &
всегда означает «объединение строк», даже если его аргументы не являются строками:
"1" & "2" => "12"
"1" & 2 => "12"
1 & "2" => "12"
1 & 2 => "12"
"a" & 2 => "a2"