打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
15.VBA常见错误及代码调试

周六 · 探索    关键词:VBA


最近社群常常会收到这样的问题“哪位大神告诉我错在哪里了……”然后哐当一下就复制了一大串代码出来,再上几个楚楚可怜的表情,紧急求助。


然而当我们问他,你代码调试过了么?


他说?调试,调试什么?怎么调试……


好吧,内心一万个点的伤害依然要保持微笑。


今天,我们就跟大家讲讲,怎么动手查询自己的代码为何不行,调试代码需要了解哪些知识。


希望学完今天的课程,伙伴们可以更好的学习VBA!



1VBA常见错误类型

在学习代码调试之前,我们先大致了解下,VBA可能出现的错误有哪些?


编译错误

常见于:单词写错的,语句有开头没有结尾的(有IF没有end,有for没有next)。通常这种错误系统会自动提出对话款,如下图:


如果出现这类的错误,伙伴们需要做的就很简单,检查自己的代码的错误地方,改正了就行。如果并不是很理解为什么错误,则可以点击对话框的帮助,基本上都能解释清楚。


■ 运行时出错的

这种错误最通俗的理解就是,你让表格干它干不出来的事情,比如,你要打开一个已经被你代码命令删除的文件,或者是你要一个数除以0。


这类错误,初学者可能会蒙圈,尤其是看到什么”拒绝权限”。这个时候,初学者一定要保持冷静,可以求助度娘或者直接点击帮助,理解下这个错误的原因。


■ 逻辑错误

与上面两种错误最大的不同时,这种逻辑错误,它根本不像前面两种有明确提示。代码没有语法问题,程序也可以运行,可是结果就是不是我们想要的。这样的错误,想发现它还是要有耐心的。


当然,这类错误最经常出现的就是循环的时候,循环逻辑出错是常有的,而事实上,我们调试代码,大多数时间都是在修改程序中存在的逻辑错误。所以说,当你发现结果不是你想要的,就重新审视下自己的逻辑语言吧!


那么,我们已经知道大概的错误类型了。可是我们究竟怎么才能够找到错误?



2我到底错哪儿了?

某天女票突然跟我说要分手,可是我到底错哪儿了?问她,她只会一直哭,这样下去我只会陷入抓狂状态了。


不行,总得找到我错在哪儿!怎么找?对付女票我是没招,但是对付代码,我有F8+本地窗口!(题外话:要是女票也如代码好搞定就好啦……)

 

■ 调试神器——F8+本地窗口

个人习惯,根据任务需求写完代码后,我不会立即按F5执行,而是会按F8进行逐句验证,如果循环比较多,我会至少执行3次循环后,才会按F5尝试执行。


有个非常重要的事项一定要提醒下大家,运行代码前,请先备份你的文件和你的代码。因为代码执行时不可逆的,没有撤回键。所以,如果你很不幸的没有备份又按了执行代码,而代码偏偏又是错误的。那你就只能,哭了~~

 

所以,还是那句话,请一定要,务必要,绝对要先做好备份!为了你的未来不哭泣。

 

给大家看下我平时调试代码电脑屏幕是怎么显示的。


大家可以看到,我的电脑屏幕会同时出现:原表格,VBE编程代码窗口还有本地窗口。当我运行F8的时候,本地窗口会告诉我现在I值是多少,而原表格则会显示出结果。


F8+本地窗口,是初学者最容易掌握的调试方法。当然,我们的调试方法还有很多。以下为扩充知识,大家也可以了解下。选择最适合自己的方法去寻找错误,发现并优化,相信VBA对你来说,不会很难。


■ 程序运行时,设置断点,使用断点+F8进行逐句调试。

所谓断点(快捷键F9),简单的理解就是:


你女票正在揉面条(已经按了F5在执行了)


然后你突然出现,一棍子把面条切断了(你可能发现面条上有一只苍蝇,这个时候你设置了F9)


这个时候女票跟你处于僵持状态(程序处于中断状态),女票揉面这个动作暂停了。

当程序处于中断状态(中断的位置就是你设置F9断点的地方),你可以逐句的进行F8验证。


■ 使用STOP语句

(这个我个人不太推荐使用,因为你回头还得一个一个去删除stop)

使用方法很简单,你看到那个代码的哪个语句,想让他停下来,就在该语句下一行输入一个单词STOP,就停了。


Stop对我来说唯一的好处就是,我可能临时需要关闭文件,再打开时,这个STOP 还在,我可以在stop的地方继续我的调试。而断点的设置,如果你关闭了文件,断点会自动清除。


■ 使用 debug.print _+ 立即窗口

Debug.print  是将结果显示在立即窗口的指令,可以在立即窗口中得到你想知道的。


■ 使用监视窗口

使用监视窗口有一点强制要求就是,监视的必须是已经定义过的变量或表达式。

监视窗口的打开方式:


选择你要监视的变量或表达式——单击菜单栏的“调试”,单击“快速监视”——然后单击对话框的“添加”(快捷方式是Shift+f9,然后按A添加)


注意,如果你没有选择监视的变量或表达式就按快捷键,会出现以下对话框。



3特别说明

只有当程序处于中断模式时,才能使用监视窗口,并且,只有中断模式下,监视窗口才能正常运行。


今天的内容就到这里咯,大家如果有不明白的地方,欢迎来社群提问。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA 使用立即窗口 和 本地窗口 调试的一些基本方法
如何调试Excel VBA代码
VBA从零学习之12——如何调试程序
调试 ASP 脚本
【收藏备用】VBA错误合集及调试技巧
【烟花原创】VBA零基础之第102篇VBA调试(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服