Как я могу объединить строки в VBA?

этот вопрос исходит из комментария под

3 ответов


& и всегда оценивается в контексте строки, в то время как + не может объединяться, если один из операндов не является строкой:

"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"

существует функция concatenate.

=CONCATENATE(E2,"-",F2)
но оператор всегда сцепляет строки. + часто будет работать, но если в одной из ячеек есть число, оно не будет работать так, как ожидалось.

главное (очень интересное) отличие для меня в том, что:
"string" & Null ->"string"
в то время как
"string" + Null ->Null

но это, вероятно, более полезно в приложениях базы данных, таких как Access.