分享

进阶之路:VBA进度更新

 shelbypf 2018-09-19

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进度更新

事件,往往是人为操作后自动触发,可以生成很多有趣的效果,这里不再展开咯~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多