前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA代码调试

VBA代码调试

作者头像
xyj
发布2020-07-28 11:27:05
1.4K0
发布2020-07-28 11:27:05
举报
文章被收录于专栏:VBA 学习VBA 学习

VBA写的再熟练的人,一般也很难做到一次性就写出完美无错的代码,总会有一些考虑不周全的情况或者单词写错而导致的程序出错,特别是新手,出错的可能就更加的高了。

出错是很正常的,我们需要掌握找到出错的原因,去解决错误。VBA编辑器里提供了一些方便的方法让我们去发现错误。

程序出错一般会有两种错误,编译错误和运行时错误。

1、编译错误:

所谓编译错误就是代码在编译过程中就能够发现的错误,一般是语法上的错误,比如写错了关键字。

VBA虽然不是编译型的语言,但在VBA编辑器的菜单调试下面,有一个编译子菜单,写完了一段代码,可以先点击这个菜单去尝试编译,如果没有任何提示,说明代码没有编译错误。否则会出现编译错误:

出现这个错误后,编辑器能够定位到出错的地方,一般我们都能够很快发现这种错误,这是一种比较常见也非常容易解决的错误。

2、运行时错误

这种错误是在程序运行过程中才会出现的错误,比如数组的下标越界,拼写错了对象的属性或者方法等:

这种有明显的提示,也是比较容易解决的错误,只要我们仔细检查代码,一般也是能够很快解决的。

3、逻辑错误

编译错误和运行时错误,一般随着写代码熟练度的增加,错误的情况也会越来越少,而真正难的另外一种错误是:

对程序运行来说并不能说是错误,但是与设计程序的预期结果不一致,这种错误一般是写代码时的一些逻辑上的出错,叫做bug,解决起来会比较困难。

这个时候,就需要一步一步的跟踪代码的执行,通过分析每一步的变量变化情况来判断。

  • Debug.Print

要查看变量运行过程中的值,我们可以在合适的位置设置Debug.Print语句,这样就可以查看运行到某个地方的时候,变量的变化情况,从而判断是否逻辑上出了问题。

  • Debug.Assert

Debug.Assert后面跟着的是一个判断,如果是false的情况就会停止运行。如果能够猜到可能出错的地方,则可以在这个地方加上这个语句,那程序运行到这个地方停下来,再进行细致的查看分析。

  • 设置断点

只需要在代码的最左边的边框上点击鼠标左键,就可以设置断点,这样程序在运行到断点处,就会自动停止运行,这个时候就可以通过鼠标移动到变量上来查看变量的值,或者通过视图-本地窗口来查看运行过程中变量的值。

  • 逐语句

逐语句也就是逐个的运行语句,快捷键是F8,只需要定位到某个过程内部,按F8就可以一条语句一条语句的运行程序,这样就方便随时查看变量的情况。

逐语句这个功能结合本地窗口,应该是VBA编辑器里最方便的查找程序逻辑出错的代码调试功能,掌握起来也比较容易。

‍但是一旦程序里有循环,循环次数又很多的情况下,也不可能真的一步一步的去执行代码,这个时候就需要结合其他的一些功能,比如结合Debug.Assert,或者是If i = 100 Then Stop这样的方法。

代码调试是写代码一定会碰上的,只要掌握了调试方法,理清了代码逻辑,解决也并不会很困难。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档