Как я могу объединить строки в VBA? - PullRequest
54 голосов
/ 13 ноября 2009

Этот вопрос возник из комментария под Range.Formula = в VBA выдает странную ошибку .

Я написал эту программу методом проб и ошибок, поэтому естественно попытался + объединить строки.

Но является ли & более правильным, чем + для объединения строк?

Ответы [ 3 ]

112 голосов
/ 13 ноября 2009

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

"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"
2 голосов
/ 05 июня 2018

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

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

0 голосов
/ 13 ноября 2009

Есть функция сцепления. Например,

=CONCATENATE(E2,"-",F2)
Но оператор & всегда объединяет строки. + часто будет работать, но если в одной из ячеек есть число, оно не будет работать должным образом.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...