Let與Set的區別
1、在“類模塊”中
Property Let 語句
在Class塊中,是給普通變量進行賦值操作的Property,該種Property將不能在其前面使用Set,因而將不能用戶對對象變量的賦值。
Property Set 語句
在Class塊中,是給對象變量進行設置引用操作的Property。
Property Get 語句
在Class塊中,取得(返回)的值的Property,返回值可以是對象變量或普通變量。
2、在“普通模塊”中
Let語句是對普通變量賦值,使其指向該對象,將對象引用賦給變量或屬性。默認省略。
Set 語句將一個對象賦值給一個變量,使其指向該對象。將對象引用賦給變量或屬性 。
Sub test() 'Let 與 Set的區別,Let是一般變量賦值,Set是對象變量賦值 Dim a As Integer Dim rng As Range Let a = 3 MsgBox a Set rng = Range("a1") End Sub
3、Set的語法
Set objectvar = {[New] objectexpression | Nothing}
Set 語句的語法包含下面部分:
部分描述:
objectvar 必需的。變量或屬性的名稱,遵循標准變量命名約定。
New 可選的。通常在聲明時使用 New,以便可以隱式創建對象。如果 New 與 Set 一起使用,則將創建該類的一個新實例。如果 objectvar 包含了一個對象引用,則在賦新值時釋放該引用。不能使用 New 關鍵字來創建任何內部數據類型的新實例,也不能創建從屬對象。
objectexpression 必需的。由對象名,所聲明的相同對象類型的其它變量,或者返回相同對象類型的函數或方法所組成的表達式。
Nothing 可選的。斷絕 objectvar 與任何指定對象的關聯。若沒有其它變量指向 objectvar 原來所引用的對象,將其賦為 Nothing 會釋放該對象所關聯的所有系統及內存資源。