文档详情

VBA经验总结全解.docx

发布:2017-01-23约3.75万字共63页下载文档
文本预览下载声明
第一节:认识VBE界面 默认的VBE界面包含了:菜单栏、工具栏、工程管理器、代码窗口,如下图: 其实VBE界面中还包含了模块、类模块、窗体、工作表、工作簿,如下图所示 1、工作表对象:每个EXCEL文件的每个sheet对应一个工作表对象。如果将sheet1对象中的代码移到sheet2对象中,将不再对sheet1起作用,因此,工作表事件代码窗口用于保存与工作表相关的事件代码 2、工作簿对象:每个EXCEL文件有且仅有一个工作簿对象。一切与工作簿事件有关的代码,都必须录入在工作簿对象事件代码中。 3、用户自定义窗体:用于设计对话框、制作程序界面,而且适当的通过窗体来录入或修改数据,可以有效避免数据录入的错误率及重复数据的多次录入等情况,提高效率 4、标准模块:用于存放子过程(SUB)或自定义函数(FUNCTION)以及通过录制宏产生的代码。(非事件代码均建议写在标准模块中) 5、类模块:详见13章笔记 6、属性窗口(F4):用于查看或修改各对象的属性 7、代码录入区:有多少个对象就有多少个代码窗口,此窗口默认是重叠的,只显示最上面的一个,可通过双击对象切换到相对应的代码窗口; 8、对象列表(shift+F7): 9、过程列表 第二节:录入代码 代码的存放位置: 所有工作表事件的代码必须存放在对应的工作表的事件代码窗口中,放在其他地方,代码不会被执行; 工作簿事件的代码必须放在ThisWorkbook代码窗口中,类模块相关的代码必须放在类模块中; 除此以外的其他代码均放在标准模块中。(即:除事件代码以外,均适宜放在标准模块中) 写入代码的方法: 如果是通过网络获取的或通过别人帮忙编写的代码,可以直接复制到相应的窗口 最简单的方法:录制宏 事件代码的录入:通过对象下拉列表框和过程下拉列表框来录入代码。 事件以外的代码录入:单击菜单“插入 ”--“过程 ”--录入过程名称,并根据需要选择类型和范围,单击“确定”按钮,即可生成程序外壳。熟练以后,可以直接手动写代码,不再需要通过此方法。 提升代码的可读性: 为了更容易的读懂代码且给后续的代码维护工作提供便利,在写代码时尽可能的做到以下五点: 一、代码的对齐与缩进:VBA代码是有层级关系的,同级代码应采用相同的左边距(缩进代码与凸出请不要使用空格键,请使用TAB键,也可直接点击工具栏上的代码缩进与凸出按钮) 二、长代码换行:当一段代码有一行或多行代码时,为了便于阅读和理解代码的含义。VBA提供了换行的方式:在代码需要换行的地方插入“ ?_”,然后将后面的代码放在下一行即可,从而可以使一行代码在两行或多行显示。(“ ?_”包含两个字符,第一个是空格不能少,第二个是下划线)。换行时不能从单词中间截断,否则代码无效。 三:有意义的名称:程序过程命名方式一:在命名时完整的说明程序的功能;方式二:简化命名+详细注释。 变量或常量的命名:用英文命名如FileName或用汉字词语命名 四:代码注释:为了方便随时都能迅速的读懂代码,要养成注释代码的习惯,方式有两种:整段代码的注释写在代码段的上方;单句代码的注释写在代码的右侧。添加注释的方法:半角的撇号“”后跟注释的内容。 VBA对很多对象都提供了快速信息,包括对象、属性、方法、函数和参数。其中绿色图标表示方法,黑色带有手形的图标代表属性。若无把握写正确这些方法或属性时,可以直接从列表中选择,从而提高录入的准确性。 第三节:代码的执行方式 方式一:快捷键调用:ALT+F8打开宏对话框,点击选项按钮: 跳出宏选项对话框: 这里即可指定当前选择的SUB过程对应的快捷键。 也可以通过代码Application.OnKey方法来指定快捷键 只需在需要指定快捷键的sub中加上一句:Application.OnKey 指定的快捷键”,“对应的过程名” (^小写字母对应CTRL+此字母,^大写字母对应CTRL+SHIFT+该字母) 方式二:单击按钮执行: 插入--表单控件--按钮,拖动鼠标使按钮大小调整到适当大小 跳出指定宏对话框,选择宏名列表中相应的宏,单击确定: 特别说明:以上两种方法仅对无参数且未隐藏的SUB过程有效,对自定义函数无效,对有参数的SUB过程及私有过程均无效。 方式三:自动执行 VBA中有一种通过快捷键或按钮均无法调用执行的代码,即事件过程代码,只有当满足事件所指定的条件时,才会自动执行此类代码。 方式四:在公式中调用 即FUNCTION过程(自定义函数),此过程可以嵌套到SUB过程中,即通过SUB过程来调用FUNCTION过程。但更多的应用是在单元格中当公式来使用。 第四节 保存代码 文件保存格式对VBA代码的影响 2003版本OFFICE的文件格式xls可以保存代码,2007及以上版本需要保存为xlsm格式才可保留代码,这是为了区分有代码的文件还是
显示全部
相似文档