断点调试的顺序(利用单步运行及断点设置来调试程序)
断点调试的顺序(利用单步运行及断点设置来调试程序)For i = 1 To 2Sheets("sheet2").Select我们在VBE窗口放入下面的代码:Sub mynzA() '利用单步运行及断点设置来调试程序Dim i As Integer j As Integer
今日的内容是“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
分享成果,随喜正能量
VBA的应用及学习方法:VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!
我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨 真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了七部VBA专门教程。
第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。
第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。
第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,视频更易接受。
第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第六套教程:VBA信息获取与处理,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。
第七套教程:VBA之EXCEL应用 这是一部初级教程这部教程共三册,从从创建宏、对话框、工作簿和工作表对象、单元格对象等基础内容讲起,到循环结构、错误处理、字符串操作、日期和时间、事件、数组应用,函数过程等方面,一直讲解到控件和窗体对象的应用都是我们提高自己EXCEL水平的必须。
以上各教程学习顺序:7→1(或者4)→3→2→6→5。其中第四套是对第一套的视频讲解,所以第一和第四只选其一即可。