2016-07-22 51 views
1
Dim str as string 
str & vbnullstring <> vbnullstring 
str <> vbnullstring 

行之間的區別是什麼2 & 3?Vbnullstring連接字符串vs vbnullstring

+0

沒有。很容易測試。 –

+0

我懷疑有人對vbNullString,vbNullChar和Null等幾個完全不同的東西感到困惑。 – Bob77

回答

1

任何東西& vbNullString都會得到相同的字符串,所以這兩行應該是相同的。

如果您在程序中遇到問題,您可以嘗試Option Explicit,因爲&在處理Variant時有奇怪的行爲。如果你寫了類似Dim str, a As String那麼str的類型爲Variant

+2

這根本不是「奇怪的行爲」。不同之處在於'Variant'可以是'vbEmpty'或'vbNull','String'不能。考慮:'Dim foo As Variant:foo = vbNull&vbNullString:Debug.Print foo = vbNullString' – Comintern

+0

@Comintern不,vbNull是常量1,vbEmpty是常量0.&不是很奇怪,但它有一個複雜的行爲。基本上,它將兩個變量轉換爲字符串並將它們連接起來,其中'Empty'和'Null'都被轉換爲'vbNullString'。 –

+1

你是否在註釋中運行代碼?直接違背了'vbEmpty'和'vbNull'轉換爲'vbNullString'的斷言。試試這些:'Debug.Print vbNullString&vbNullString = vbNullString'True' - 'Debug.Print vbNull&vbNullString = vbNullString'False' - 'Debug.Print vbNull = vbNullString'類型不匹配錯誤' – Comintern