如何连接VBA中的string

这个问题来自于对Range.Formula =的评论, 在VBA中引发了一个奇怪的错误 。

我通过反复试验的方法编写了这个程序,所以我自然而然地尝试了+连接string。 但是&而不是+更正确的方法串联string?

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

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

这只是潜在错误的一个微妙的来源,因此应该避免。 & 始终意味着“string连接”,即使它的参数是非string:

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

有连接function。 例如

  = CONCATENATE(E2, “ - ”,F2) 

但是&运算符总是连接string。 +通常会起作用,但是如果其中一个单元格中有一个数字,它将无法按预期工作。

Excel有一个Concatenate()函数…