it-roy-ru.com

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

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

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

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

48
ilya n.

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

"1" + "2" => "12"
"1" + 2   => 3
1 + "2"   => 3
"a" + 2   => type mismatch

Это просто тонкий источник потенциальных ошибок, поэтому его следует избегать. &always означает «конкатенацию строк», даже если ее аргументы не являются строками:

"1" & "2" => "12"
"1" &  2  => "12"
 1  & "2" => "12"
 1  &  2  => "12"
"a" &  2  => "a2"
99
Joey

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

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

1
Patrick Honorez

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

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

0
wallyk