VBA 实例 控制语句实例 vba使用SQL packingListVBAcode

Overall    

总体思路:

1 获取对象;

2 利用对象的属性和方法进行数据处理,利用事件实现自动化响应;

Excel不能使用VBA

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",是指当按下组合键时,运行Hello过程;ctrl:^,alt:%;使用此方法,实际就是给过程设置一个快捷键;与开发工具中的宏对话框中设置的快捷键中不同的是,此方法设置的快捷键在所有打开的工作簿中均有效;

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

overall

  1. 如果需要实现应用程序的自动化,应用程序必须绑定自动化语言,Excel 5.0开始绑定,到Office 97开始,整个套装都有绑定VBA;
  2. 使用常量的好处:更好的阅读性,容易维护,不易出错;
  3. 变量声明的好处:减少内存占用,从而提高程序性能;也可以减少命名冲突,以及拼写错误的发生率;
  4. 变量赋值与对象赋值:对象赋值要用set;
  5. End属性,当很难理解时可以写一段代码在Excel表中看运行的效果。
  6. 类模块:创建隐藏对象的代码窗口。
  7. 在Excel中,从Excel2007开始,包含宏代码的工作簿采用xlsm格式;
  8. 反复调用相同的代码:使用个人宏工作簿,其中的代码可以通过Alt+F8调用;
  9. 隐藏工作表:visible;
  10. 参数:传递给一个过程的常数、变量;过程的参数相当于一个软件的自定义选项,有了足够的自定义选项,软件才能适应工作中灵活多变的需求;
  11. 一句完整的代码必须有一个动作,如赋值,修改某个属性,打开或关闭对象,声明一个变量或调用一个过程;
  12. 常量:便于识别和简化输入;

工作簿事件中的自动宏

在Excel2007中,可以使用工作簿级的“Workbook_Open”事件来执行自动宏。不过为了体现兼容性,微软并没有将Auto宏禁用,仍然可以继续使用,但绝不推荐用户继续使用。

Excel的事件可以手工启用和禁用。

在VBA中,通过Application对象的EnableEvents属性来控制,将EnableEvents属性设置为True即启用事件,设为False即为禁用事件。完整的代码如下:

Application.EnableEvents=TrueApplication.EnableEvents=False

通常在以下两种情况下需要禁用事件:1 临时关闭事件;2 防止事件进入死循环

 

将较大的过程分为多个再调用

VBA允许一个过程存入上千条代码,然而一个过程太庞大不利于阅读和维护,特别是一个代码超过一屏时。此时需要将过程按作用分为多个子过程,再到主过程中调用。