分类
VBA

VBA调试——逐语句/逐过程/跳出

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                             '                ⑧

'主要说的是逐语句/逐过程/跳出 三个调试指令在使用过程中的区别。

'逐语句:以单个语句为单位,逐条执行.
'        遇到调用的自定义子函数或子过程,会进入子过程和子函数逐条执行。
'         ①②③(⑥⑦⑧)④⑤

'逐过程:在光标所在过程以单个语句为单位,逐条执行.
'        遇到调用自定义子函数或子过程,会自动执行到子函数或子过程返回后的下一条语句。
'        ①②③④⑤

'跳出:光标所在过程执行到返回上一层。

'        ①②③(⑥⑦(跳出)④⑤