2020年5月4日 星期一

VBA,""(空字串)、Null、Empty、與Nothing的區別



0、""(空字串)、Null、Empty、與 Nothing 的區別
先回答以下問題吧! 經過以下的敘述之後, 變數 A、B、C、D 分別等於 0、
""、Null、 Empty、 Nothing 的哪一個?
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等於 Empty, 因為尚未初始化的「不定型變數」都等於 Empty。但如果檢測 A = "" 或 A = 0, 也都可以得到 True 值。
B 等於 "", 因為尚未初始化的非固定長度「字串」都等於 "" 。 但請注意B<> Null。
C 等於 0, 這個還有問題嗎?
D 等於 Nothing, 尚未設定有物件的「物件變數」都等於 Nothing, 但請不要使用 D = Nothing , 而要使用 D Is Nothing 來判斷 D 是否等於 Nothing,因為判斷 是否相等的符號是 Is 不是 = 。
最令人迷惑的地方是 Null 這個保留字, 請看以下語句:
Print X = Null
Print X <> Null
結果都是輸出 Null(不是 True 也不是 False), 這是因為任何一個運算式只
要含有 Null , 則該運算式就等於 Null, 實際上想要判斷某一資料是否為 Null
絕對不能使用:
If X = Null Then ' 永遠都會得到 Null
而要使用:
If IsNull(X) Then
哪一種資料會等於 Null 呢? 除了含有 Null 運算式之外, 就屬沒有輸入任
何資料的「資料欄位」(在資料庫中) 會等於 Null。

來源:

沒有留言:

張貼留言