如何在VBA中连接字符串?

84

这个问题来自于VBA中的Range.Formula=引发奇怪错误评论区。

我是通过试错写出这个程序的,所以我自然而然地尝试使用+来连接字符串。

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

3个回答

167

& 总是在字符串上下文中进行求值,而当操作数之一不是字符串时,+ 可能不会进行拼接:

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

对于一个两位数的整数呢?比如 13 & "2"?那会是 132 吗? - Adjit
7
可以的。顺便说一下,你可以轻松测试一下。 - Joey

5

对我来说最主要(非常有趣)的区别是:

"string" & Null -> "string"

"string" + Null -> Null

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


2

有一个concatenate函数。例如:=CONCATENATE(E2,"-",F2)但是&操作符总是连接字符串。+通常可以工作,但是如果其中一个单元格中有数字,则不能按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接