在前面的內容中,我們看到了通過在對象之間加上句點可以逐步得到想要的對象,以及引用對象的省略寫法。
在獲得對象之后,我們就要對這個對象進行相應的操作。例如,給對象賦值,讓對象做相應的動作,這些就要用到對象的屬性和方法。
如何使用對象的屬性和方法呢?仍然是用句點,例如:
Worksheets.Add
表示添加工作表。
Range(“A1”).Clear
表示完全清除單元格A1中的內容和格式。
Range(“A1”).Value
可以獲得或設置單元格A1中的值。
Range(“A1”).Address
可以獲得或設置單元格的地址表示。
……
于是,我們可以得到使用對象的屬性和方法的規則:
規則3:對象.方法或者對象.屬性
也就是通過在對象后加上句點來使用對象的屬性和方法,如下所示。
看一看,與對象的引用相同,都是使用句點。
我們在編寫VBA代碼或查看別人編寫的VBA代碼時,會大量用到或看到這樣的表示方法。實際上,這是VBA語言中最基礎的結構,如下所示。

有些情況下,我們可以省略參數名,直接使用參數值,多個參數之間使用逗號(,)分隔。例如:
Range(“A1”).Offset(1, 2)
也表示基于當前單元格A1向下偏移1行,向右偏移2列的單元格。
注意,省略參數名雖然簡便,但要嚴格按照參數的順序來設置相應的參數值,即便有些參數的值無須設置,也要按其順序使用逗號隔開。例如,基于當前單元格A1向右偏移2列的單元格:
Range(“A1”).Offset(, 2)
Range對象的Offset屬性有兩個參數,其順序是:第一個參數RowOffset,第二個參數ColumnOffset,上面的代碼中,雖然省略了第一個參數,但仍要使用逗號分隔。
如果加上參數名,則無須使用逗號:
Range(“A1”).Offset(ColumnOffset:=2)
因此,使用參數名加上:=設置參數是一種較好的編寫代碼的方法,不僅無須考慮參數的順序,根據參數名也知道參數設置的具體含義。
對于方法的參數也是如此,在此不再贅述。
默認屬性
對于對象的方法或屬性來說,有些屬性是默認的,也就是說,在我們沒有設置屬性時,對象就會自動表現出的行為。
例如,Worksheets對象的Add方法,如果我們不設置參數,執行下面的語句:
Worksheets.Add
默認為在當前工作表前添加一個工作表,新工作表插入到當前工作表的前面。
大多數情況下,我們會省略掉Range對象的Value屬性,例如:
Range(“A1”).Value = “ExcelVBA”
與
Range(“A1”) = “ExcelVBA”
相同,將直接在單元格A1中輸入文本“Excel VBA”。






