如何在VBA中连接字符串?

时间:2009-11-13 07:31:24

标签: excel-vba vba excel

此问题来自Range.Formula= in VBA throws a strange error下的评论。

我通过反复试验编写了该程序,因此我自然地尝试+来连接字符串。

但是&对于连接字符串比+更正确吗?

3 个答案:

答案 0 :(得分:111)

& 始终在字符串上下文中进行评估,而+如果其中一个操作数不是字符串则可能无法连接:

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

答案 1 :(得分:1)

对我而言,主要(非常有趣)的区别在于:
"string" & Null - > "string"

"string" + Null - > Null

但这在Access等数据库应用程序中可能更有用。

答案 2 :(得分:0)

有连接功能。 For example

=CONCATENATE(E2,"-",F2)
但&运算符总是连接字符串。 +通常会起作用,但如果其中一个单元格中有一个数字,它将无法按预期工作。