1、VBA里的常用對象
VBA就是用代碼記錄下的一個或一組操作,無論是動作還是代碼,都是在操作對象。
常用對象的引用方式::
application.workbooks('book1').worksheets('sheet2').range('A1'),事實上,加了s后,這些對象也叫作集合。其中:
application ---表示Excel程序
workbooks('book1') ---表示工作簿,一個workbook代表一個工作簿
worksheets('sheet2') ---表示工作表
range('A1') ---表示單元格,其實是單元格區(qū)域
例如:workbooks.open filename := 'F:\Book1.xls' ---對象、方法,方法與屬性間用空格連接,參數(shù)名稱與參數(shù)值之間用:=連接。注意,:=和=在VBA里,都是賦值符,但賦值的對象不同而已:
1. := 是“方法”的內(nèi)部子參數(shù)賦值時使用的。
Worksheets.Add before:=Worksheets(1), count := 3
Sheet1.Find(What:='工時', LookIn:=xlValues, LookAt:=xlWhole)
2. =是給變量、對象賦值時使用的。
如i = 55、Range('A1').Value='Good Morning'、Set Rng = Range('A1')、Set dic = CreateObject ('Scripting.Dictionary') 等等。
例如:Worksheets.Add(before:=Worksheets(1)).Name = '我是第一',表示:在工作表1之前加上一個工作表,且新表命名為”我是第一”。
上文提到過,range和cells的不同,這里再舉一例:range('B3:F9').cells(2, 3).value = 100,代表B3:F9區(qū)域的,第二行和第三列相交的單元格,即D4單元格。
注意,Let 與 Set的區(qū)別:Let是一般變量賦值,Set是對象變量賦值,let可以省略,但是set不可以,例如句子:
Sub test()
Dim a As Integer
Dim rng As Range
Let a = 3
MsgBox a
Set rng = Range('a1')
End Sub
2、VBA里的事件
事件,就是一個能被對象識別的操作。
事件過程:一種特殊的sub過程。當(dāng)某個事件發(fā)生后,自動運行的過程,必須寫在特定對象所在的模塊中,且名字為:對象名稱_事件名稱,不可以更改。所以,想編寫哪個對象的事件過程,就雙擊哪個模塊,進入代碼窗口,下拉選擇對象和事件過程。
比如,onkey方法:
事件,往往是人為操作后自動觸發(fā),可以生成很多有趣的效果,這里不再展開咯~
聯(lián)系客服