這篇部落格根據網友那裡擷取來的,不是本人親寫親測。
Null:Null是一個象Integer或者String一樣的變量類型,它表示一個沒有合法資料的變量。
這有别于zero、Nothing、Empty或者vbNullString。許多數值與Null結合在一起,都将産生Null結果。
比如: 表達式 結果 Null - Null Null Null + 7 7 Null = Null Null
你可以使用IsNull語句來判斷表達式是否為Null:
If IsNull(my_variable) Then ...
Empty:這也是一個象Integer或者String一樣的變量類型,它表示了一個還沒有進行初始化的變量。它與Null的意義不同,
Null表示沒有合法資料。 一個沒有初始化的變量的數值是Empty。你可以使用IsEmpty語句來判斷是否變量進行了初始化:
If IsEmpty(my_variant) Then ...
Nothing:這是一個指向空對象的對象引用。将對象引用設定為Nothing,就釋放了那個對象。如果沒有其他的引用指向對象,
Visual Basic就将銷毀這個對象。 Dim obj As Form1 : Set obj = Nothing
注釋: Free the object reference. 使用Is Nothing語句來判斷是否一個引用為Nothing:
If obj Is Nothing Then ... vbNullString:這是個常量,表示一個empty字元串。它與空白字元串""不同,
表示什麼也沒有的字元串(nothing string)。對于許多場合,它被當作一個empty字元串""處理,
真正使用它的目的是傳遞null參數給庫函數。 Null是一個很奇怪的數值,它不是zero,不是Nothing,不是vbNullString。
它是沒有定義的東西。 判斷字元串是否為空白 有以下幾種方法判斷一個字元串是否為空白:
Dim txt As String
Dim blank As String blank = "" : If Len(txt) = 0 Then ...
If txt = vbNullString Then ... If txt = "" Then ... If txt = blank Then ...
經過測試,Len(txt)=0的方法要比其他方法快20%多。
Nothing在VBA中的用途
我們常在VBA代碼中看到Nothing這個單詞,如:
Set d = Nothing
If d is Nothing
Nothing到底是什麼意思呢?幫助裡是這樣解釋的:
使用 Nothing 關鍵字被将對象變量從實際對象中分離開來。要使用 Set 語句将 Nothing 指派給對象變量。
通俗一點就是判斷某個對象是否存在(is Nothing)和從記憶體資源中釋放這個對象(= Nothing)
例如我們在EP上找一個會員, 我們就可以這樣寫
Dim aa as Ep會員 '假設定Ep會員是一個對象類型
Set aa="小A" '用Set 設定對象變量為會員"小A"
If aa Is Nothing Then '如aa不存在
Msgbox "這個會員不存在"
Else
Msgbox "這個會員存在"
End If
-----------------------------------------------------------------------------------------------------------------
而且Set 對象變量=Nothing 則是把從非Excel庫提庫的外來引用對象從記憶體資源中釋放出去.如
Dim d As New Dictionary '建立一個新的字典對象
Set d = Nothing '從記憶體資源中釋放出來