大家好,在第47和48讲中,我们比较详细地给大家讲解了各种模块的有效行为。大家可以窥探到各种模块的实质,有了对于模块的认识,我们在写代码时就可以更好的把握自己的工程。那么对于一个工程而言,从需求,到思路的建立,到代码的编写,是不是就行了呢?不是的,在代码编写完后还有非常重要的一步,就是代码的调试。

关于VBA代码的调试,无论是标准模块的代码,还是窗体模块的代码,或者类模块中的代码,调试都是写代码工程中一项重要的工作。当房子建好后,我们首先要测试房子的各项指标是否达到了我们要求,这个就是程序调试。不是每个程序写完后都能马上正常运行,在某种程度上讲,写完代码后的调试本身就是写代码的一部分。有的程序调试过程很快,有的会时间长些,有的甚至会推倒重来。

一 什么是程序调试

所谓程序的调试,就是编制的程序在投入实际运行前,要进行的测试。

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

二 程序调试的范围

程序调试的范围较广,一般包括如下几个方面:

1语法错误的检验:每一种语言都有自己的语法习惯,你写的代码必须要符合这些规范,而且是必须的。错一丝一毫也通不过。比如半角、全角;参数是否传递正确,是否有相应的属性等等。

2运行过程的检验:需要注意循环是否是闭合,with语句是否是闭合,参数的定义范围,数组的上下标是否越界等等。

3实际结果的检验:上面的第一第二都通过了,程序开始运行,但运行的结果不一定是你期望的结果。这就要考虑逻辑问题了。

4程序优化的检验,如果结果和你的预想一致,那么是否就说明程序完美了?不是的,还要有程序优化问题,包括:代码可读性是否强;占用内存是否最少;运行时间是否最短;可视效果是否最佳。

三 代码调试的原则

1分析思考与错误征兆有关的信息。

2调试的过程也是自己再学习的过程。

3修改错误的同时应避免产生新的错误。

四 代码调试的方法

1 代码写完后要再次阅读,要最大限度地减少书写的错误。

2 在大脑中模拟运行,这个过程十分关键。要让代码在你的大脑中先运行,看运行的步骤,哪个过程先执行,哪个后执行,数据怎么进行查找等等,这个过程也是检查你写代码的逻辑是否严谨。这个内容在《VBA代码解决方案-视频讲解》中我曾经多次地讲到。

3 分过程小范围调试,上述的步骤之后,开始真正的调试了,要先小范围的调试,看看数值的关系是否正确。充分利用语句的中断符,msgbox , 临时参数,分步骤运行等等。

4 总体的测试,小范围测试没问题后,开始执行大范围的测试。这个时候主要看最终的执行结果了,这个时候要设置特殊值来校验,不要一开始就执行几千几万的数据,要从几行开始。根据我的经验,一般出现问题常在一首一尾,所以要重视首尾的数据运行结果。如果与自己大脑的设想结果全然不符,就要检查你编程的逻辑了。

5 数据的追踪。当出现了非预期的数值或者现象的时候,要知道如何去追踪数据,这里就靠自己的经验了,但仍要注意语句的中断符,msgbox , 临时参数的利用。

今日内容回向:

1 代码调试的意义是什么?

2 如何理解代码的调试行为?

在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

学习VBA是个过程,这个过程是自己忍受孤独的过程。

“水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。

最后将一阙词送给致力于VBA学习的朋友:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

vba下标越界9怎么解决_49:VBA代码的调试行为相关推荐

  1. vba下标越界9怎么解决_铝模气泡怎么解决?看9个常见问题防治

    随着新型模板技术在建筑施工领域的推广应用,铝合金模板应用于发展势头迅猛. 通过对已完成工程的混凝土结构进行调查分析,统计出影响混凝土成型质量的两大主要质量缺陷:气泡麻面和墙角烂根,这我们该如何解决? ...

  2. keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...

    HI,大家好,我是星光,今天咱们来继续学习VBA.在上一章咱们讲了为什么要学习VBA~VBA还值不值得学~学了还有没有用~零基础学VBA编程01:VBA还能不能学?学了还有没有用? 这一章咱们再来简单 ...

  3. VBA字符串智能拼接与自动换行 VBA代码助手独家功能

    VBA字符串智能拼接与自动换行 VBA代码助手下载地址 VBA代码助手独家特有功能 视频演示 Alt+L变量拼接字符串 VBA新手噩梦,在一个VBA字符串中插入变量,许多人要经过很多次的挫折才能正确书 ...

  4. [Office VBA 宏]我好不容易编写的VBA代码如何加密保护?(Word版)

    [Office VBA 宏]我好不容易编写的VBA代码如何加密保护?(Word版) 文档工作中,繁琐重复的操作简直苛政猛于虎啊. 利用VBA宏加快工作效率,降低苛政杂税容易吗? 好不容易写好的代码,如 ...

  5. 【原创】VBA学习笔记(7)VBA各种报错和原因备忘

    0 报错经验的查询 报错,发生在报错的那一行 报错,也经常发生在报错的前一行 所以debug 要重点看,报错行和报错行的下一行! 报错,也经常发生在报错的前一行的例子 下面这个报错,其实是fn2=di ...

  6. vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值

    image 不知道大家有没有遇到过这种情况,一个文件夹下有很多Excel文件,每个文件里面一个或多个表都有一个同样的单元格,比如自己的名字啊.生日啊之类的.这个时候如果要改动这个单元格的内容我们需要一 ...

  7. 【原创】VBA学习笔记(12)VBA的数组 array---基础知识(1)

    一 数组 array 1.1 什么是数组?具体的例子 以这个语句为例子 arr1=array(1, 2, 3) 左边:变量名=数组名 右边:数组,集合,多个元素集合,多个数据集合, 右边的单个内容,1 ...

  8. vba与MySQL交互_Excel、VBA与MySQL交互

    几次更新失败,我已经放弃在这里更新了,有需要可以到博客园看: ################################################################ 本文主要 ...

  9. VBA如何打开html文件6,VBA程序中如何自动打开网页

    大家好,我们今日继续讲解VBA代码解决方案的第83讲内容:如何利用代码让VBA程序打开指定的网页.现代的社会对于网络的依赖是前所未有的,那么,有么有办法让VBA代码可以打开指定的网页呢?当然可以. 今 ...

最新文章

  1. 百度大脑金秋九月CV盛典,人脸识别新产品及伙伴计划发布会压轴开启
  2. python基础练习(三)
  3. aspose.pdf for java_Java 开发者最困惑的四件事
  4. 为什么我不再推荐使用 MVC 框架?
  5. 项目后台的最新认识和对MVC封装性、可维护性的更深刻认识!
  6. Django之orm查询
  7. 关于vs2008上的socket链接错误问题
  8. 云时代的大数据存储-云HBase
  9. 把Oracle数据库移植到Microsoft SQL Server 7.0
  10. tomcat 服务器启动异常 报错
  11. 记录点滴23(中秋、国庆篇)
  12. php类似滴滴系统,除了滴滴顺风车还有哪些顺风车平台好用?
  13. python期货程序化开发_使用文华财经进行期货程序化真的很low,自己编程才是正途...
  14. 游戏模型(3A)和影视模型(cg)的区别以及发展前景?
  15. U盘格式化的不同选择——FAT32,NTFS和exFAT
  16. Html控制大华摄像头
  17. 靠着游戏收入支撑打造众多口碑产品的网易,下一个20年会如何走
  18. Unity VR开发教程 OpenXR+XR Interaction Toolkit (五) UI
  19. java-正则表达式判断手机号
  20. python中烦人的锟斤拷(\xef\xbf\xbd)

热门文章

  1. Git/GitHub 中文术语表
  2. Android中实现微信本地视频发布到朋友圈功能
  3. IT创业----唐骏:12年前没有我,就没有今天的新浪
  4. 通信感知一体化关键技术与挑战
  5. 几个图片、音频、视频编辑软件的简介
  6. shp转化为json
  7. 店招新品之创意LED显示屏之LED魔方屏的特点
  8. Vue选项之extends扩展
  9. JUnit4的一些常用注解
  10. ST7789的显示问题-正点原子开发板验证