Dim str as string
str & vbnullstring <> vbnullstring
str <> vbnullstring
行之間的區別是什麼2 & 3?Vbnullstring連接字符串vs vbnullstring
Dim str as string
str & vbnullstring <> vbnullstring
str <> vbnullstring
行之間的區別是什麼2 & 3?Vbnullstring連接字符串vs vbnullstring
任何東西& vbNullString
都會得到相同的字符串,所以這兩行應該是相同的。
如果您在程序中遇到問題,您可以嘗試Option Explicit
,因爲&
在處理Variant
時有奇怪的行爲。如果你寫了類似Dim str, a As String
那麼str
的類型爲Variant
。
這根本不是「奇怪的行爲」。不同之處在於'Variant'可以是'vbEmpty'或'vbNull','String'不能。考慮:'Dim foo As Variant:foo = vbNull&vbNullString:Debug.Print foo = vbNullString' – Comintern
@Comintern不,vbNull是常量1,vbEmpty是常量0.&不是很奇怪,但它有一個複雜的行爲。基本上,它將兩個變量轉換爲字符串並將它們連接起來,其中'Empty'和'Null'都被轉換爲'vbNullString'。 –
你是否在註釋中運行代碼?直接違背了'vbEmpty'和'vbNull'轉換爲'vbNullString'的斷言。試試這些:'Debug.Print vbNullString&vbNullString = vbNullString'True' - 'Debug.Print vbNull&vbNullString = vbNullString'False' - 'Debug.Print vbNull = vbNullString'類型不匹配錯誤' – Comintern
沒有。很容易測試。 –
我懷疑有人對vbNullString,vbNullChar和Null等幾個完全不同的東西感到困惑。 – Bob77