




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章 ExcelVBA代码调试及优化 8 1VBA程序代码的调试及优化 一 调试及优化的重要性 作为一名开发者 开发出健壮的程序是基本要求 当你完成了代码编写 还需对程序代码进行调试 测试和优化 通过以上流程 才可能写出符合用户功能要求的程序 尽量避免BUG的存在 事实上 BUG很难避免 就连微软公司的windows操作系统 也需经常打补丁程序 弥补系统程序的漏洞 所以 在代码的编写过程中 程序的调试 测试和优化是一项不可避免的工作 也是一项非常重要的工作 VBE编辑器提供了具有多种功能的开发环境 其中包括许多与更高级的开发工具中相同的调试工具 二 什么是调试 作为一名开发者查找错误的过程就称为调试 因为VBE编辑器是一个功能强大的开发环境 所以提供了几种调试工具供使用 这些工具包括 立即窗口 Watch表达式 断点 单步执行代码 二 什么是调试 我们先来看一个例子 大家还记得上一章单击取消按钮的事件过程代码吗 代码如下 PrivateSubCommandButton2 Click UnloadMe 删除UserForm1对象MsgBox 程序将退出 不再计算圆的面积 提示用户信息btn cancel True btn cancel是布尔变量 当用户点击取消 按钮时 此变量设为真 保证窗体删除 后 不再执行计算圆面积的后续代码 EndSub 二 什么是调试 我们思考一下 为什么UnloadMe语句要放在MsgBox语句之前 如果这二行代码顺序交换下 又会有怎样的效果呢 二 什么是调试 这个界面不是很友好 二个窗口同时存在了 因此必须将UnloadMe语句要放在MsgBox语句之前 如果你没有进行过程序调试与测试 就根本不会意识到这个问题的存在 同理 在上一章的计算圆的面积程序中 要定义一个名为btn cancel的全局变量 以判断用户是否点击了取消按钮 也是有原因的 这个变量辅助程序能按正常的顺序执行 大家可以试着取消该变量及相关语句 看看程序会出现什么样的问题 三 使用调试工具 单步执行代码 举例说明单步执行的使用方法 具体步骤操作如下 1 打开 改进后的用户界面设计 xls 文件 再打开VBE编辑器 2 双击窗体中的确定按钮 定位到CommandButton1 Click 事件过程 用鼠标依次点击VBE编辑器中的 调试菜单 逐语句 也可以按快捷键F8 此时马上弹出请输入圆半径的对话框 输入3后 单击确定按钮 程序又返回到代码窗口 此时待执行语句背景为黄色 呈高亮状态 三 使用调试工具 单步执行代码 3 再按一次F8健 再把鼠标移到变量r上 此时显示出此时的变量r值等于0 三 使用调试工具 单步执行代码 4 再按一次F8健 再把鼠标移到变量r上 此时显示出此时的变量r值等于3 说明用户刚才输入的半径3 已经赋给变量r 符合预期要求的那样 5 继续执行程序 可以一直不断地按F8键 逐语句的执行程序 当然也可以按F5键 让程序直接执行到代码结束 不再一步一步的执行 这样可大大节省调试时间 四 程序的优化 对程序进行优化 通常是指优化程序代码或程序执行速度 优化代码和优化速度实际上是一个予盾的统一 一般是优化了代码的尺寸 就会带来执行时间的增加 如果优化了程序的执行速度 通常会带来代码增加的副作用 很难鱼与熊掌兼得 只能在设计时掌握一个平衡点 四 程序的优化 1 程序的书写结构虽然书写格式并不会影响生成的代码质量 但是在实际编写程序时还是应该尊循一定的书写规则 一个书写清晰 明了的程序 有利于以后的维护 在书写程序时 特别是对于ForNext语句 ForEach Next If Then Else语句 SelectCase等语句或这些语句嵌套组合时 应采用 缩格 的书写形式 另外 程序中的注释语句 也是不可缺少的 一 程序代码结构的优化 四 程序的优化 2 标识符程序中使用的用户标识符除要遵循标识符的命名规则以外 一般不要用代数符号 如a b x1 y1 作为变量名 应选取具有相关含义的英文单词 或缩写 或汉语拼音作为标识符 以增加程序的可读性 如 count number1 red work等 一 程序代码结构的优化 四 程序的优化 3 程序结构首先要注意尽可能采用结构化的程序设计方法 这样可使整个应用系统程序结构清晰 便于调试和维护 对于一个较大的应用程序 通常将整个程序按功能分成若干个模块 不同模块完成不同的功能 各个模块可以分别编写 甚至还可以由不同的程序员编写 一般单个模块完成的功能较为简单 设计和调试也相对容易一些 一 程序代码结构的优化 四 程序的优化 4 定义常数在程序化设计过程中 对于经常使用的一些常数 如果将它直接写到程序中去 一旦常数的数值发生变化 就必须逐个找出程序中所有的常数 并逐一进行修改 这样必然会降低程序的可维护性 因此 应尽量当采用预处理命令方式来定义常数 而且还可以避免输入错误 一 程序代码结构的优化 四 程序的优化 5 表达式对于一个表达式中各种运算执行的优先顺序不太明确或容易混淆的地方 应当采用圆括号明确指定它们的优先顺序 一个表达式通常不能写得太复杂 如果表达式太复杂 时间久了以后 自己也不容易看得懂 不利于以后的维护 一 程序代码结构的优化 四 程序的优化 1 选择合适的算法和数据结构应该熟悉算法语言 知道各种算法的优缺点 具体资料请参见相应的参考资料 有很多计算机书籍上都有介绍 将比较慢的顺序查找法用较快的二分查找或乱序查找法代替 插入排序或冒泡排序法用快速排序 合并排序或根排序代替 都可以大大提高程序执行的效率 二 程序运行速度的优化 四 程序的优化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南店铺转让合同范本
- 门面转让后新合同范本
- 电脑电视维修合同范本
- 车间出租坊子合同范本
- 酒店招租合同协议模板
- 民间质押借款合同范本
- 自如续租押金合同范本
- 自助洗车采购合同范本
- 活动板房租赁合同范本
- 自助洗浴租赁合同范本
- 个人向企业正式借款合同
- 2025部编版五年级上册《道德与法治》教学工作计划
- 催收话术培训
- 国开电大《组织行为学》形考任务1-4
- 期末检测试卷-2024-2025学年六年级数学上册人教版
- 品牌代工厂协议书范本
- GB/T 44815-2024激光器和激光相关设备激光束偏振特性测量方法
- 三管防控及护理管理要点
- 携程旅行合同电子版
- 幼儿园食品安全和膳食经费管理方案
- 食堂食品安全校长第一责任人制度
评论
0/150
提交评论