亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
719
2025-03-31
Excel VBA 句點怎么設置
在前面的內容中,我們看到了通過在對象之間加上句點可以逐步得到想要的對象,以及引用對象的省略寫法。
在獲得對象之后,我們就要對這個對象進行相應的操作。例如,給對象賦值,讓對象做相應的動作,這些就要用到對象的屬性和方法。
如何使用對象的屬性和方法呢?仍然是用句點,例如:
Worksheets.Add
表示添加工作表。
Range(“A1”).Clear
表示完全清除單元格A1中的內容和格式。
Range(“A1”).Value
可以獲得或設置單元格A1中的值。
Range(“A1”).Address
可以獲得或設置單元格的地址表示。
……
于是,我們可以得到使用對象的屬性和方法的規則:
規則3:對象.方法或者對象.屬性
也就是通過在對象后加上句點來使用對象的屬性和方法,如下所示。
看一看,與對象的引用相同,都是使用句點。
我們在編寫VBA代碼或查看別人編寫的VBA代碼時,會大量用到或看到這樣的表示方法。實際上,這是VBA語言中最基礎的結構,如下所示。
現在,我們已經知道了對象有屬性和方法,以及表示對象的屬性及其方法的語法,那么如何描述它們的屬性或方法,具體告訴對象是什么或者該做些什么呢?這就要使用參數了。
對象方法的參數
有很多書中,經常使用踢球的例子。要踢的球是一個對象,它有一個方法,就是踢,使用上面的語法表示,就是:
球.踢
或者:
Ball.Kick
踢多高,向哪個方向去踢,這就是參數要描述的內容。也就是說,方法的參數告訴踢球的具體行為:
球.踢方向:=向左,高度:=3米
或者:
Ball.Kick Direction:=Left,Height:=3
在Excel VBA中,大多數對象的方法也帶有參數,告訴該方法具體的行為,例如,在當前工作簿中添加工作表,使用Worksheets對象的Add方法,如果我們要將新工作表添加到名為Sheet1的工作表之后,就要使用Add方法的After參數,代碼如下:
Worksheets.AddAfter:=Worksheets(“Sheet1”)
對象屬性的參數
還是使用足球的例子。看到足球后,我們就知道這個球的顏色,大多數是白黑相間的顏色,假如白色有7塊,黑色有6塊。可以用下面的式子表示:
球.顏色(白色:=7,黑色:=6)
或者:
Ball.Color(White:=7,Black:=6)
在Excel中,不少屬性也帶有參數。例如,基于當前單元格A1向下偏移1行,向右偏移2列的單元格,代碼表示如下:
Range(“A1”).Offset(RowOffset:=1,ColumnOffset:=2)
參數的表示方法
綜合上述說明的關于表示對象方法或屬性的參數的用法,可以總結出參數表示方法的規則如下:
規則4:參數名:=參數值
方法或屬性的參數可能不止一個,各參數之間使用逗號(,)分隔開。
有些情況下,我們可以省略參數名,直接使用參數值,多個參數之間使用逗號(,)分隔。例如:
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”。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。