ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4321|回复: 1

[分享] VBA程序写好后,如何进行调试,直到程序顺利运行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-12 11:06 | 显示全部楼层 |阅读模式

VBA代码要有“搭积木”的思想,首先要有大量的资源,也就是积木的原型,什么是积木呢?就是各自能单独解决一个或几个小问题的单元,当你要解决新的问题时,就可以利用这些积木,摆放他们在合适的位置,形成新的代码方案。例如要搭建一处住宅,那么这些积木,有的是管上下水的,有的是管电路的,有的是管气温调节的。当房子建好后,我们首先要测试这些积木是否达到了我们要求,这个时候就是程序调试了。不是每个程序写完后都能马上正常运行的,有的调试过程很快,有的会时间长些,有的甚至会推倒重来。
什么是程序调试呢?就是编制的程序在投入实际运行前,要进行的测试,测试过程包括修正语法错误和逻辑错误的过程。这是保证程序正确性的必不可少的步骤。通过测试时所发现的错误,要进行诊断,找出原因和具体的位置进行修正,从而完善程序。说的直白些,就是说你的房子搭建好后,在你搬家之前进行的综合检验。
  程序调试的内容: 程序调试的范围较广,一般包括如下几个方面:
1语法错误的检验:每一种语言都有自己的语法习惯,你写的代码必须要符合这些规范,而且是必须的。错一丝一毫也通不过。比如半角、全角;参数是否传递正确,是否有相应的属性等等。
2 运行过程的检验:语法通过了,是第一步,在运行过程中还会检验很多内容:如循环是否是闭合的,with语句是否是闭合的,参数的定义范围是否有问题,数组的上下标是否越界等等,这个检验就要点运行了。
3实际结果的检验:上面的第一第二都通过了,程序开始正常的运行,但运行的结果不一定是你期望的结果。这就要考虑是哪里的问题了。
4 程序优化的检验,如果结果和你的预想一致,那么是否就说明程序完美了?不是的,还要有程序的优化问题,包括:代码可读性是否强;占用的内存是否最少;运行时间是否最短;可视效果是否最佳。
代码调试的原则:
1  用头脑去分析思考与错误征兆有关的信息。
2  调试的过程也是自己再学习的过程。
3  修改错误的同时应避免产生新的错误。
代码调试的方法
  1 代码写完后要再次阅读。要最大限度地减少书写的错误。所以推荐大家利用现成的VBA代码,鼓励大家去复制,粘贴,修改代码,而不是录入代码。
  2 在大脑中模拟运行,这个过程十分关键。要让代码在你的大脑中先运行,看运行的步骤,哪个过程先执行,哪个后执行,数据怎么进行查找等等,这个过程也是检查你写代码的逻辑是否严谨。
  3 分过程小范围调试,上述的步骤之后,开始真正的调试了,要先小范围的调试,看看数值的关系是否正确。充分利用语句的中断符,msgbox , 临时参数等等
  4 总体的测试,小范围测试没问题后,开始执行大范围的测试。这个时候主要看最终的执行结果了,这个时候要设置特殊值来校验,不要一开始就执行几千几万的数据,要从几行开始。根据我的经验,一般出现问题常在一首一尾,所以要重视首尾的数据运行结果。如果与自己大脑的设想结果全然不符,就要检查你编程的逻辑了。
  5 数据的追踪。当出现了非预期的数值或者现象的时候,要知道如何去追踪数据,这里就靠自己的经验了,但仍要注意语句的中断符,msgbox , 临时参数的利用。

TA的精华主题

TA的得分主题

发表于 2019-8-8 16:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 02:29 , Processed in 0.034494 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表