Overall |
1 获取对象;
2 利用对象的属性和方法进行数据处理,利用事件实现自动化响应;
1 卸载或更改程序→office→更改→添加或删除功能→office共享和工具;
2 允许运行宏→重启Excel;
ThisWorkbook与ActiveWorkbook区别,前者是对代码所在工作簿的引用,后者是对活动工作簿的引用;
Worksheets(1).Activate和Worksheets(1).select的区别在于第一张表是否隐藏?Worksheets.Activate和Worksheets.select的区别在于是否可以选择多张表格?
Worksheets集合与sheets集合的区别在于前指普通工作表,而后者包括所有类型的工作表,如图表、excel 5.0对话框、excel 4.0宏表。
不是事件的事件
1 Application对象的OnKey方法:此方法告诉Excel,当按下键盘上指定的键或组合键——自动执行指定的程序。
如:Application.OnKey "+e" "Hellow",是指当按下
2 Application对象的OnTime方法:是指在指定的时间自动执行指定的过程;
如:Application.OnTime TimeValue("12:00:00"),"Hello",是指在12点执行Hello过程;
每隔5分钟自动保存工作簿;
sub Otime()
Application.OnTime now() + TimeValue("00:05:00"), "WBSave"
end sub
Sub WBSave()
ThisWorkbook.Save
Call Otime
end sub
工作簿事件中的自动宏
在Excel2007中,可以使用工作簿级的“Workbook_Open”事件来执行自动宏。不过为了体现兼容性,微软并没有将Auto宏禁用,仍然可以继续使用,但绝不推荐用户继续使用。
Excel的事件可以手工启用和禁用。
在VBA中,通过Application对象的EnableEvents属性来控制,将EnableEvents属性设置为True即启用事件,设为False即为禁用事件。完整的代码如下:
Application.EnableEvents=TrueApplication.EnableEvents=False
通常在以下两种情况下需要禁用事件:1 临时关闭事件;2 防止事件进入死循环
将较大的过程分为多个再调用
VBA允许一个过程存入上千条代码,然而一个过程太庞大不利于阅读和维护,特别是一个代码超过一屏时。此时需要将过程按作用分为多个子过程,再到主过程中调用。