暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA类模块代码的调试

VBA语言専攻 2022-08-22
177
【分享成果,随喜正能量】执念,会让自己失去判断力,冲动会让自己变的疯狂,也会让结果变的苦涩。不要去试探别人的底线,因为那条底线可能就是你的劫数线。。
《VBA中类的解读及应用》教程【2022-L-10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA类模块代码的调试

第四十九讲  类模块的调试行为(1)

大家好,在第47和48讲中,我们比较详细地给大家讲解了各种模块的有效行为。大家可以窥探到各种模块的实质,有了对于模块的认识,我们在写代码时就可以更好的把握自己的工程。那么对于一个工程而言,从需求,到思路的建立,到代码的编写,是不是就行了呢?不是的,在代码编写完后还有非常重要的一步,就是代码的调试。
关于VBA代码的调试,无论是标准模块的代码,还是窗体模块的代码,或者类模块中的代码,调试都是写代码工程中一项重要的工作。当房子建好后,我们首先要测试房子的各项指标是否达到了我们要求,这个就是程序调试。不是每个程序写完后都能马上正常运行,在某种程度上讲,写完代码后的调试本身就是写代码的一部分。有的程序调试过程很快,有的会时间长些,有的甚至会推倒重来。

1  什么是程序调试

所谓程序的调试,就是编制的程序在投入实际运行前,要进行的测试。
测试过程包括修正语法错误和逻辑错误。这是保证程序正确性的必不可少的步骤。通过测试时所发现的错误,要进行诊断,找出原因和具体的位置进行修正,从而完善程序。说的直白些,就是说你的房子搭建好后,在你搬家之前进行的综合检验。

2  程序调试的范围

程序调试的范围较广,一般包括如下几个方面:
1)语法错误的检验:每一种语言都有自己的语法习惯,你写的代码必须要符合这些规范,而且是必须的。错一丝一毫也通不过。比如半角、全角;参数是否传递正确,是否有相应的属性等等。
2)运行过程的检验:需要注意循环是否是闭合,with语句是否是闭合,参数的定义范围,数组的上下标是否越界等等。
3)实际结果的检验:上面的第一第二都通过了,程序开始运行,但运行的结果不一定是你期望的结果。这就要考虑逻辑问题了。
4)程序优化的检验,如果结果和你的预想一致,那么是否就说明程序完美了?不是的,还要有程序优化问题,包括:代码可读性是否强;占用内存是否最少;运行时间是否最短;可视效果是否最佳。

3  代码调试的原则

1)分析思考与错误征兆有关的信息。
2)调试的过程也是自己再学习的过程。
3)修改错误的同时应避免产生新的错误。

4  代码调试的方法

  1) 代码写完后要再次阅读,要最大限度地减少书写的错误。
  2) 在大脑中模拟运行,这个过程十分关键。要让代码在你的大脑中先运行,看运行的步骤,哪个过程先执行,哪个后执行,数据怎么进行查找等等,这个过程也是检查你写代码的逻辑是否严谨。这个内容在《VBA代码解决方案-视频讲解》中我曾经多次地讲到。
  3) 分过程小范围调试,上述的步骤之后,开始真正的调试了,要先小范围的调试,看看数值的关系是否正确。充分利用语句的中断符,msgbox , 临时参数,分步骤运行等等。
  4) 总体的测试,小范围测试没问题后,开始执行大范围的测试。这个时候主要看最终的执行结果了,这个时候要设置特殊值来校验,不要一开始就执行几千几万的数据,要从几行开始。根据我的经验,一般出现问题常在一首一尾,所以要重视首尾的数据运行结果。如果与自己大脑的设想结果全然不符,就要检查你编程的逻辑了。
  5) 数据的追踪。当出现了非预期的数值或者现象的时候,要知道如何去追踪数据,这里就靠自己的经验了,但仍要注意语句的中断符,msgbox , 临时参数的利用。


今日内容回向:
  1  代码调试的意义是什么?
  2  如何理解代码的调试行为?


我20多年的VBA实践经验,全部浓缩在下面的各个教程中

【分享成果,随喜正能量】学佛人,要以责人之心来责己,以寡过,不要经常去讲别人不好,应该经常检点自己,不管你对他错,要从自我身上找毛病,用责怪别人的心责怪自己,你就会少犯错。 。
文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论