今日的内容是“VBA之EXCEL应用”的第八章“VBA代码的调试及简单错误的排除”。这讲是第二节“利用单步运行及断点设置来调试程序(Debugging)”。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面向初学人员,共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。
第二节 利用单步运行及断点设置来调试程序(Debugging)
大家好,我们继续讲解代码的测试及错误处理的方法。这讲的内容是利用单步运行及断点设置来调试程序(Debugging)。这讲的内容对于初学VBA人员是非常重要的,如果您从别人那里得到一段代码,如果你要理解它脚本是什么意思,或者是根据用户的要求进行修改,请记住,调试是理解代码的最好方法。
为了更好地讲解这讲的内容,我建议大家缩小窗口,把VBA窗口和工作表窗口能同时显示,这样可以看到代码的运行和工作表界面的显示效果。
1 代码的单步运行
关于代码的单步运行,我们在上一讲已经讲过,这讲我们继续讲解,单步运行就是把光标放在代码的最开始处,然后按F8键,就可以单步执行代码了。它非常有用,因为它允许你查看工作表中每一行代码的效果。
我们在VBE窗口放入下面的代码:
Sub mynzA() '利用单步运行及断点设置来调试程序
Dim i As Integer, j As Integer
Sheets(“sheet2”).Select
For i = 1 To 2
For j = 1 To 5
Cells(i, j).Value = WorksheetFunction.RandBetween(10, 100)
Next j
Next i
End Sub
代码的截图:
代码的讲解:
1)Sheets(“sheet2”).Select 激活”sheet2”的工作表。
2) For i = 1 To 2
For j = 1 To 5
Cells(i, j).Value = WorksheetFunction.RandBetween(10, 100)
Next j
Next i
以上代码在工作表的第1到第2行,每行的第1到第5列中填入10到100间的随机数。
下面我们看代码的单步运行效果,我们把光标放在代码的起始处:
按下F8键:
再次按下F8键:
再次按下F8 F8 F8键:
再次按下F8键:
如上截图,代码停止在Next j处,此时的工作表中在A1单元格录入了64.
此时如果我们把鼠标放在某个变量如j上会清晰的显示此时这个变量的值,如下图:
后续的代码运行就不一一演示了,可见利用F8键会十分清楚的看到代码的运行情况,以及运行时工作表界面的变化。
2 代码的断点(Breakpoint)设置
我们还可以设置断点在特定代码行停止执行。若要设置断点,请单击要放置断点的左侧空白(灰色)。这时会一出现个红点:
我们此时点击工作表界面的运行按钮,或者是上述截图界面的箭头所指向的三角,此时代码就会运行,直到中断处。如下:
此时的工作表界面会出现已经填入的随机数了脚本是什么意思,此时,当把鼠标指向某个变量时,同样会提示变量此时的值。
要移除断点,请单击红点。接下来,单击绿色箭头继续执行。
3 测试代码的执行过程是发现代码错误的必须
我们在写完代码后,不要希望代码可以一次运行成功,代码的调试过程是必不可少的。对于复杂的程序更是这样。
在代码运行的测试过程中,要随时测试每个变量值的变化,如果出现异常要及时发现。也就是说代码的运行过程要在自己的大脑中进行预演,测试的过程是验证代码的运行是否与自己大脑的过程相吻合。有时这个过程是要花费很长时间的,如果有了一定的经验,可以大大缩短这个时间。
但任何时候,解读一段别人的代码总要比自己写一段代码要复杂些,每个人都有自己的代码习惯,或许这种习惯是其他人难于接受的。
最后我们看一下代码的最后运行结果:
今日内容回向:
1) 代码单步执行和断点设置的作用是什么?
2) 如何设置代码的断点?
3) 如何让代码单步执行?
本讲内容参考程序文件:工作簿07.xlsm
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。