打开APP
userphoto
未登录

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

开通VIP
VBA入门之调试

【前言】很多初学编程的朋友在程序出现错误时会变得束手无策。去向老手请教,很多人会告诉你,自己先F8。那么这个F8是什么鬼呢?

【1】那么我们就从F8开始入手。F8,从下图我们可以看到,是工具栏-调试下的一个名叫逐语句的玩意。


【2】顾名思义,是逐个语句运行。单个语句单个语句去看,显然要比整个运行去看来的清晰。我们可以实时的观测分析变量、对象等的值、状态等。好奇的人,一定发现逐语句后面还有一个逐过程。没错,这个就是对过程的调试,将来一定会用到。

【3】继续前面的F8调试。为了观测变量等,我们需要可以看到这些东西的窗口之类的东西。那么接下来登场的就是:立即窗口、监视窗口、本地窗口。


【4】同样,从工具栏,不过这次是视图下面,调出这3个东西。当然如果已经调出这些东西了,就不需要这个步骤了。接下来,我们来分析一个很经典的问题,a,b,c相等,那么a=b=c。如果从数学意义上来讲,很明显这3个相等的式子是成立的,也就是TRUE。不过程序是程序,计算机可不这么认为,我们必须服从该程序的规则。

【5】在本地窗口中,会自动显示运行代码中的变量、对象等。但是本地窗口不会显示像a=b这种我们写的运算式。没有关系,只要右键选中a=b,然后添加监视,这样就可以再监视窗口看到a=b了。

【6】结果怎么办?没关系,我们也可以监视,不过我在这里用了debug.print。该语句可以再立即窗口显示结果。

我们来运一次代码,发现立即窗口显示为FALSE,并不像数学那样是TRUE

【7】学习任何东西我们都要学会独立的分析。首先,a=b=c到底是以什么顺序运行的。这时候我们就需要百度会死这个东西,或者帮助。我们找到VBA的运算规则:

当表达式有多种运算符时,先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。所有比较运算符有相同的优先级,即按它们出现的顺序从左到右进行处理。

相同的时候从左到右,这就很简单了。我们先看a=b。从上图中我监视了a=b,且得到a=bTRUETRUE显然不等于c,所以立即窗口显示了FALSE

上面,我说显然,其实也不见得。我们应该联想到这个TURE有没有一个数值型的值。那就让我们先试试把c赋值为-1。再调试下:

什么?结果是TRUE,就是说TRUE的值是-1。当然初学者可能想不到是-1,因为我们经常把0,1当做真假,就不会拿-1去试。我们可以先百度一下会死,我就来找“VBATUREFALSE的值”。下面是我找到的其中一条。

当转换其他的数值类型为 Boolean 值时,0 会转成 False,而其他的值则变成 True。当转换 Boolean 值为其他的数据类型时,False 成为0,而 True 成为 -1

前辈(膜拜下大神)告诉我们原来TRUEFALSE是这样的,而且帮助里就有!

【后续】最后做个小小的总结:初学时,一定时常看帮助,微软的帮助非常强大。不行还可以百度,百度能找到很多VBA资料。还要学会独立思考,善于衍生问题,在解决问题的过程中不断进步。



图文作者:冥月※辰风

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
教程 | VBA运算符知多少
[原创]VBA编程系列:运算符和表达式
成员运算符
001.了解VBA基本概念
完美Python入门基础知识点总结,看完你的Python就完全入门了!
Excel VBA的调试技巧 | VBA实例教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服