VBA作为excel的三大神器之一,初学者经常会遇到各种错误无从下手。语法错误好解决,有些程序逻辑上的错误就需要慢慢调试,慢慢培养思维习惯了。而调试VBA代码,是发现错误,分析错误,解决错误的重要一环。
诸多VBA课程都侧重于从语法/小练习/小案例上开始讲起,这当然便于循序渐进,保持学习兴趣,但是排查错误作为编制程序,尤其是新手编制程序必经的一环,大都放在最后捎带脚提一下,阁主觉得有必要在这里对VBA的调试功能做个简单的介绍,尽量让对VBA感兴趣的朋友可以独立排除程序中的错误。
阁主在这里说下 逐语句/逐过程/跳出 三个调试指令在使用过程中的区别。
逐语句:以单个语句为单位,逐条执行.
遇到调用的自定义子函数或子过程,会进入子过程和子函数逐条执行。
逐过程:在光标所在过程以单个语句为单位,逐条执行.
遇到调用自定义子函数或子过程,会自动执行到子函数或子过程返回后的下一条语句。
跳出:光标所在过程执行到返回上一层。
'“逐语句/逐过程/跳出”三个调试指令的区别 Sub caller() '父过程 ① Debug.Print "调用子过程callee开始" ' ② callee '调用子过程 ③ Debug.Print "调用子过程callee结束" ' ④ End Sub ' ⑤ Sub callee(Optional ByVal time = 5) '子过程 ⑥ Debug.Print time ' ⑦ End Sub ' ⑧ '主要说的是逐语句/逐过程/跳出 三个调试指令在使用过程中的区别。 '逐语句:以单个语句为单位,逐条执行. ' 遇到调用的自定义子函数或子过程,会进入子过程和子函数逐条执行。 ' ①②③(⑥⑦⑧)④⑤ '逐过程:在光标所在过程以单个语句为单位,逐条执行. ' 遇到调用自定义子函数或子过程,会自动执行到子函数或子过程返回后的下一条语句。 ' ①②③④⑤ '跳出:光标所在过程执行到返回上一层。 ' ①②③(⑥⑦(跳出)④⑤