it-swarm.com.de

Wie kann ich Strings in VBA verketten?

Diese Frage kommt von einem Kommentar unter Range.Formula = in VBA wirft einen seltsamen Fehler .

Ich habe dieses Programm durch Versuch und Irrtum geschrieben, also habe ich natürlich + versucht, Strings zu verketten.

Aber ist & richtiger als + für die Verkettung von Strings?

48
ilya n.

& wird immer in einem String-Kontext ausgewertet, während + möglicherweise nicht verkettet wird, wenn einer der Operanden keine Zeichenfolge ist:

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

Dies ist lediglich eine subtile Quelle potenzieller Fehler und sollte daher vermieden werden. & always bedeutet "Zeichenfolgenverkettung", auch wenn die Argumente keine Zeichenfolgen sind:

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

Der Hauptunterschied (sehr interessant) ist für mich:
"string" & Null -> "string"
während
"string" + Null -> Null

Dies ist jedoch wahrscheinlich in Datenbank-Apps wie Access sinnvoller.

1
Patrick Honorez

Es gibt die Verkettungsfunktion. Zum Beispiel

= CONCATENATE (E2, "-", F2)
Der Operator & verkettet jedoch immer Strings. + wird oft funktionieren, aber wenn sich in einer der Zellen eine Zahl befindet, funktioniert sie nicht wie erwartet.

0
wallyk