Was ist der Unterschied zwischen den Zeilen 2 & 3?Vbnullstring verkettet mit einer Zeichenkette vs vbnullstring
Antwort
Alles & vbNullString
erhalten Sie die gleiche Zeichenfolge, so dass die beiden Zeilen identisch sein sollten.
Wenn Sie Probleme in dem Programm haben, können Sie versuchen Option Explicit
, weil &
seltsame Verhaltensweisen im Umgang mit Variant
hat. Wenn Sie etwas wie Dim str, a As String
geschrieben haben, dann hat str
den Typ Variant
.
Es ist überhaupt kein "seltsames Verhalten". Der Unterschied ist, dass eine "Variante" "vbEmpty" oder "vbNull" sein kann und eine "String" nicht. Betrachten: "Dim foo As Variante: foo = vbNull & vbNullString: Debug.Print foo = vbNullString" – Comintern
@Comintern Nein, vbNull ist konstant 1 und vbEmpty ist konstant 0. & ist nicht * ziemlich * seltsam, aber es hat ein komplexes Verhalten.Im Grunde konvertiert es beide Variablen in Strings und verbindet sie, wobei 'Empty' und' Null' in beide konvertiert werden 'vbNullString'. –
Haben Sie den Code im Kommentar ausgeführt? Das widerspricht direkt der Behauptung,' vbEmpty' und 'vbNull' würden in' vbNullString' konvertiert. Versuchen Sie diese: 'Debug.Print vbNullString & vbNullString = vbNullString 'True' - 'Debug.Print vbNull & vbNullString = vbNullString 'Falsch' -' Debug.Print vbNull = vbNullString' Typ Mismatch Fehler ' – Comintern
Nichts. Einfach genug zum Testen. –
Ich vermute, jemand ist verwirrt über verschiedene Dinge wie 'vbNullString',' vbNullChar' und 'Null'. – Bob77