您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 8.1 VBA程序代码的调试及优化
浙江省普通高中选修课网络课程EXCELVBA编程入门第八章:ExcelVBA代码调试及优化8.1VBA程序代码的调试及优化浙江省普通高中选修课网络课程EXCELVBA编程入门一、调试及优化的重要性作为一名开发者,开发出健壮的程序是基本要求。当你完成了代码编写,还需对程序代码进行调试、测试和优化。通过以上流程,才可能写出符合用户功能要求的程序,尽量避免BUG的存在。事实上,BUG很难避免,就连微软公司的windows操作系统,也需经常打补丁程序,弥补系统程序的漏洞。所以,在代码的编写过程中,程序的调试、测试和优化是一项不可避免的工作,也是一项非常重要的工作。VBE编辑器提供了具有多种功能的开发环境,其中包括许多与更高级的开发工具中相同的调试工具。浙江省普通高中选修课网络课程EXCELVBA编程入门二、什么是调试?作为一名开发者查找错误的过程就称为调试。因为VBE编辑器是一个功能强大的开发环境,所以提供了几种调试工具供使用。这些工具包括:•立即窗口。•Watch表达式。•断点。•单步执行代码。浙江省普通高中选修课网络课程EXCELVBA编程入门二、什么是调试?我们先来看一个例子。大家还记得上一章单击取消按钮的事件过程代码吗?(代码如下)PrivateSubCommandButton2_Click()UnloadMe'删除UserForm1对象MsgBox程序将退出,不再计算圆的面积!'提示用户信息btn_cancel=True'btn_cancel是布尔变量,当用户点击取消‘按钮时,此变量设为真。保证窗体删除‘后,不再执行计算圆面积的后续代码。EndSub浙江省普通高中选修课网络课程EXCELVBA编程入门二、什么是调试?我们思考一下,为什么UnloadMe语句要放在MsgBox语句之前,如果这二行代码顺序交换下,又会有怎样的效果呢?浙江省普通高中选修课网络课程EXCELVBA编程入门二、什么是调试?这个界面不是很友好,二个窗口同时存在了,因此必须将UnloadMe语句要放在MsgBox语句之前。如果你没有进行过程序调试与测试,就根本不会意识到这个问题的存在。同理,在上一章的计算圆的面积程序中,要定义一个名为btn_cancel的全局变量,以判断用户是否点击了取消按钮,也是有原因的,这个变量辅助程序能按正常的顺序执行。大家可以试着取消该变量及相关语句,看看程序会出现什么样的问题。浙江省普通高中选修课网络课程EXCELVBA编程入门三、使用调试工具-单步执行代码举例说明单步执行的使用方法。具体步骤操作如下:1、打开【改进后的用户界面设计.xls】文件,再打开VBE编辑器。2、双击窗体中的确定按钮,定位到CommandButton1_Click()事件过程。用鼠标依次点击VBE编辑器中的【调试菜单】-【逐语句】(也可以按快捷键F8),此时马上弹出请输入圆半径的对话框,输入3后,单击确定按钮。程序又返回到代码窗口。此时待执行语句背景为黄色,呈高亮状态。浙江省普通高中选修课网络课程EXCELVBA编程入门三、使用调试工具-单步执行代码3、再按一次F8健,再把鼠标移到变量r上,此时显示出此时的变量r值等于0。浙江省普通高中选修课网络课程EXCELVBA编程入门三、使用调试工具-单步执行代码4、再按一次F8健,再把鼠标移到变量r上,此时显示出此时的变量r值等于3,说明用户刚才输入的半径3,已经赋给变量r,符合预期要求的那样。5、继续执行程序,可以一直不断地按F8键,逐语句的执行程序。当然也可以按F5键,让程序直接执行到代码结束,不再一步一步的执行。这样可大大节省调试时间。浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化1、程序的书写结构虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则,一个书写清晰、明了的程序,有利于以后的维护。在书写程序时,特别是对于ForNext语句、ForEach...Next、If...Then...Else语句、SelectCase等语句或这些语句嵌套组合时,应采用“缩格”的书写形式。另外,程序中的注释语句,也是不可缺少的。(一)、程序代码结构的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化2、标识符程序中使用的用户标识符除要遵循标识符的命名规则以外,一般不要用代数符号(如a、b、x1、y1)作为变量名,应选取具有相关含义的英文单词(或缩写)或汉语拼音作为标识符,以增加程序的可读性,如:count、number1、red、work等。(一)、程序代码结构的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化3、程序结构首先要注意尽可能采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,便于调试和维护。对于一个较大的应用程序,通常将整个程序按功能分成若干个模块,不同模块完成不同的功能。各个模块可以分别编写,甚至还可以由不同的程序员编写,一般单个模块完成的功能较为简单,设计和调试也相对容易一些。(一)、程序代码结构的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化4、定义常数在程序化设计过程中,对于经常使用的一些常数,如果将它直接写到程序中去,一旦常数的数值发生变化,就必须逐个找出程序中所有的常数,并逐一进行修改,这样必然会降低程序的可维护性。因此,应尽量当采用预处理命令方式来定义常数,而且还可以避免输入错误。(一)、程序代码结构的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化5、表达式对于一个表达式中各种运算执行的优先顺序不太明确或容易混淆的地方,应当采用圆括号明确指定它们的优先顺序。一个表达式通常不能写得太复杂,如果表达式太复杂,时间久了以后,自己也不容易看得懂,不利于以后的维护。(一)、程序代码结构的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化1、选择合适的算法和数据结构应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效率。(二)、程序运行速度的优化浙江省普通高中选修课网络课程EXCELVBA编程入门四、程序的优化2、使用适合的数据类型能够使用整型数据类型定义的变量就不要用长整型,能使用单精度浮点型数据类型变量就不要使用双精度浮点型数据类型变量。当然,在定义变量后不要超过变量的取值范围,如果超过变量的范围赋值,造成程序运行结果错误。(二)、程序运行速度的优化
本文标题:8.1 VBA程序代码的调试及优化
链接地址:https://www.777doc.com/doc-3355639 .html