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

38

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

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

Теги:
excel-vba

3 ответа

85
Лучший ответ

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

"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"
  • 0
    как насчет двухзначного целого числа? как 13 & "2" ? будет ли это 132 ?
  • 4
    @adjit: Да, было бы. Кстати, вы можете легко это проверить.
2

Существует функция конкатенации. Например

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

excel имеет функцию Concatenate()...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню