V172. 認識VBA中的0\""\Null\Empty與 Nothing 的區別。


V172. 認識VBA中的0\

答:請看下方代碼和運行效果:

V172. 認識VBA中的0\

'A 等於 Empty, 因為尚未初始化的“不定型變量”都等於 Empty。'但如果檢測 A = "" 或 A = 0, 也都可以得到 True 值。 'B 等於 "", 未初始化或初始化為""的“非固定長度字符串變量”都等於"",使用對象是字符型變量。'但請注意'B<> Null。 'C 等於 0, 這個還有問題嗎? 'D 等於 Nothing, 尚未初始化的或用set設置為nothing的對象變量都等於 Nothing,適用對象是對象變量。'但請不要使用 D = Nothing , 而要使用 D Is Nothing 來判斷 D 是否等於 Nothing,'因為判斷對象是否相等的符號是 Is 不是 = 。 '最令人迷惑的地方是 Null 這個保留字,請看以下語句:'A = Null'Print A = Null'Print A <> Null'結果都是輸出 Null(不是 True 也不是 False),這是因為任何一個運算式只要含有 Null,'則該運算式就等於 Null, '實際上想要判斷某一數據是否為 Null 絕對不能使用:'If A = Null Then ' 永遠都會得到 Null'而要使用:'If IsNull(A) Then '哪一種數據會等於 Null 呢?除了含有 Null 運算式之外, 就是沒有輸入任何數據的'“數據字段”(在數據庫中) 會等於 Null。

'後補:

B 的默認值是 vbNullString(這個才是空字符串),不是 ""(這個叫零長度的字符串),尤其在調用 API 時是不能搞混的。


分享到:


相關文章: