1、VBA里的常用对象
VBA就是用代码记录下的一个或一组操作,无论是动作还是代码,都是在操作对象。
常用对象的引用方式::
application.workbooks('book1').worksheets('sheet2').range('A1'),事实上,加了s后,这些对象也叫作集合。其中:
application ---表示Excel程序
workbooks('book1') ---表示工作簿,一个workbook代表一个工作簿
worksheets('sheet2') ---表示工作表
range('A1') ---表示单元格,其实是单元格区域
例如: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单元格。
注意,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过程。当某个事件发生后,自动运行的过程,必须写在特定对象所在的模块中,且名字为:对象名称_事件名称,不可以更改。所以,想编写哪个对象的事件过程,就双击哪个模块,进入代码窗口,下拉选择对象和事件过程。
比如,onkey方法:
事件,往往是人为操作后自动触发,可以生成很多有趣的效果,这里不再展开咯~
联系客服