進階之路:VBA進度更新

1、VBA裡的常用對象

VBA就是用代碼記錄下的一個或一組操作,無論是動作還是代碼,都是在操作對象。

常用對象的引用方式::

application.workbooks("book1").worksheets("sheet2").range("A1"),事實上,加了s後,這些對象也叫作集合。其中:

application ---表示Excel程序

workbooks("book1") ---表示工作簿,一個workbook代表一個工作簿

worksheets("sheet2") ---表示工作表

range("A1") ---表示單元格,其實是單元格區域

進階之路:VBA進度更新

例如:workbooks.open filename := "F:\\Book1.xls" ---對象、方法,方法與屬性間用空格連接,參數名稱與參數值之間用:=連接。注意,:=和=在VBA裡,都是賦值符,但賦值的對象不同而已:

1. := 是“方法”的內部子參數賦值時使用的。

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區域的,第二行和第三列相交的單元格,即D4單元格。

進階之路:VBA進度更新

注意,Let 與 Set的區別: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過程。當某個事件發生後,自動運行的過程,必須寫在特定對象所在的模塊中,且名字為:對象名稱_事件名稱,不可以更改。所以,想編寫哪個對象的事件過程,就雙擊哪個模塊,進入代碼窗口,下拉選擇對象和事件過程。

進階之路:VBA進度更新

比如,onkey方法:

進階之路:VBA進度更新

事件,往往是人為操作後自動觸發,可以生成很多有趣的效果,這裡不再展開咯~


分享到:


相關文章: