《如何学习VBA》这份资料,是我对初学人员学习方法的辅导,在其中,我讲到了很多有关VBA的学习方法及在教程中一些知识结构的补充说明。虽然是辅助教材,但也突出了我编程思想:积木编程;及我对于VBA的应用定义:VBA是实现个人小型数据自动化的有效工具(手段)。今日的内容是第37讲:写好的VBA代码如何进行调试,保证顺利运行。
3.3.3 VBA程序写好后,如何进行调试,直到程序顺利运行
《VBA代码解决方案》的教程,我贯彻了一种搭积木的编程思路,147讲就相当于147块积木,你有了这些积木,把每块放在合适的位置,来构建你的工程。例如要搭建一处住宅,那么这些积木,有的是管上下水的,有的是管电路的,有的是管气温调节的。当房子建好后,我们首先要测试这些积木是否达到了我们的要求,这个时候就是程序调试了。不是每个程序写完后都能马上正常运行的,有的调试过程很快,有的会时间长些,有的甚至会推倒重来。
什么是程序调试呢?就是编制的程序在投入实际运行前,要进行的测试,测试过程包括修正语法错误和逻辑错误的过程。这是保证程序正确性的必不可少的步骤。对测试时所发现的错误,要进行诊断,找出原因和具体的位置进行修正,从而完善程序。说的直白些,就是说你的房子搭建好后,在你搬家之前进行的综合检验。
一 程序调试的内容:程序调试的范围较广,一般包括如下几个方面:
1语法错误的检验:每一种语言都有自己的语法习惯,你写的代码必须要符合这些规范,而且是必须的。错一丝一毫也通不过。比如半角、全角;参数是否传递正确,是否有相应的属性等等。
2 运行过程的检验:语法通过了,仅是第一步,在运行过程中还会检验很多内容:如循环是否是闭合的,with语句是否是闭合的,参数的定义范围是否有问题,数组的上下标是否越界等等,这个检验就要点运行了。
3 实际结果的检验:上面的第一第二都通过了,程序开始正常的运行,但运行的结果不一定是你期望的结果。这就要考虑是哪里的问题了。
4 程序优化的检验,如果结果和你的预想一致,那么是否就说明程序完美了?不是的,还要有程序的优化问题,包括:代码可读性是否强;占用的内存是否最少;运行时间是否最短;可视效果是否最佳。
二 代码调试的原则:
1用头脑去分析思考与错误征兆有关的信息。
2调试的过程也是自己再学习的过程。
3修改错误的同时应避免产生新的错误。
三 代码调试的方法
1 代码写完后要再次阅读。要最大限度地减少书写的错误。所以我推荐大家利用《VBA代码解决方案》,鼓励大家去复制,粘贴,修改代码,而不是录入代码。
2 在大脑中模拟运行,这个过程十分关键。要让代码在你的大脑中先运行,看运行的步骤,哪个过程先执行,哪个后执行,数据怎么进行查找等等,这个过程也是检查你写代码的逻辑是否严谨。
3 分过程小范围调试,上述的步骤之后,开始真正的调试了,要先小范围的调试,看看数值的关系是否正确。充分利用语句的中断符,msgbox , 临时参数等等
4 总体的测试,小范围测试没问题后,开始执行大范围的测试。这个时候主要看最终的执行结果了,这个时候要设置特殊值来校验,不要一开始就执行几千几万的数据,要从几行开始。根据我的经验,一般出现问题常在一首一尾,所以要重视首尾的数据运行结果。如果与自己大脑的设想结果全然不符,就要检查你编程的逻辑了。
5 数据的追踪。当出现了非预期的数值或者现象的时候,要知道如何去追踪数据,这里就靠自己的经验了,但仍要注意语句的中断符,msgbox , 临时参数的利用。
第7套教程:VBA之EXCEL应用
第1套教程:VBA代码解决方案
【第4套教程:VBA代码解决方案之视频(第一套的视频讲解)】
第3套教程:VBA数组与字典解决方案
第2套教程:VBA数据库解决方案
第6套教程:VBA信息获取与处理
第5套教程:VBA中类的解读和利用
第8套教程:VBA之Word应用(2021年4月底推出)
上述教程的学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
- 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
- 教程学习顺序是7,1(或4),3,2,6,5。第7套《VBA之Excel应用》是对VBA基本的讲解;第1(或4)套《VBA代码解决方案》是《VBA之Excel应用》的提高;第3套《VBA数组与字典解决方案》是VBA应用的专题讲解,教程中讲解的专题是数组和字典,大家会在这套教程中看到非常全面的数组与字典的应用;第2套《VBA数据库解决方案》也是VBA应用的专题讲解,教程讲解的专题是数据库,大家会在这套教程中看到VBA连接Excel与accdb的全面应用;第6套《VBA信息获取与处理》是整个VBA应用的提高;第5套《VBA中类的解读及应用》是VBA的最高理论“类”“接口技术”的讲解。第8套教程《VBA之Word应用》需要在第7套教程之后学习。
- 如果说《VBA之EXCEL应用》是大家认识VBA的阶段,那么《VBA代码解决方案》就要求大家能理解VBA,理解我推出的“积木编程”思想,理解我对VBA应用的定义:VBA是实现个人小型数据自动化的有效工具(手段)。