e.VBA程序單步調(diào)試與對(duì)象監(jiān)視

????今天發(fā)現(xiàn)VBA一個(gè)神奇的功能,即單步調(diào)試對(duì)象監(jiān)視功能,對(duì)于難理解抽象語句的我來說,簡(jiǎn)直發(fā)現(xiàn)了新大陸。在這上篇簡(jiǎn)書中,提到本地窗口、立即窗口和監(jiān)視窗口【http://www.itdecent.cn/p/afd4974c975b 】,在本文展開詳細(xì)解讀:

VBA程序調(diào)試·原則及工具

調(diào)試目的:程序投入運(yùn)行前,修正語法錯(cuò)誤和邏輯錯(cuò)誤,保證程序的正確性。
????根據(jù)測(cè)試時(shí)所發(fā)現(xiàn)的錯(cuò)誤信息和利用調(diào)試工具追蹤的提示信息,兩者相互結(jié)合綜合判斷 錯(cuò)誤發(fā)生原因和位置。

調(diào)試原則:
1、根據(jù)代碼邏輯,大致判斷錯(cuò)誤可能出現(xiàn)的位置;
2、借助調(diào)試工具,理清程序數(shù)據(jù)流轉(zhuǎn)邏輯;根據(jù)調(diào)試的提示信息,做出正確的處理。
3、反思錯(cuò)誤本身,是否存在設(shè)計(jì)偏差。

VBA調(diào)試工具:

  • Debug.print
  • 設(shè)置斷點(diǎn)
  • 單步調(diào)試
  • 添加監(jiān)視及監(jiān)視窗口
  • 本地窗口
  • 立即窗口
  • 單步調(diào)試跳轉(zhuǎn)
VBA程序調(diào)試·實(shí)際操作

編寫程序后,點(diǎn)擊運(yùn)行后報(bào)錯(cuò),程序中斷:
VBA程序運(yùn)行出現(xiàn)錯(cuò)誤提示
  • Debug.print 打印錯(cuò)誤信息

    Debug.print打印報(bào)錯(cuò)信息

  • 設(shè)置斷點(diǎn)
    點(diǎn)擊運(yùn)行,程序?qū)⑦\(yùn)行至斷點(diǎn)處停止,方便排查錯(cuò)誤區(qū)域。
    設(shè)置斷點(diǎn)兩種方法:
    1、點(diǎn)擊需要斷點(diǎn)行的前面,行變深紅色;
    2、調(diào)試菜單 -> 選擇切換斷點(diǎn)(光標(biāo)停在斷點(diǎn)行,按快捷鍵F9)

    設(shè)置斷點(diǎn)后行項(xiàng)變紅

  • 單步調(diào)試
    逐條運(yùn)行程序,便于查看變量值、添加語句或分析bug。
    設(shè)置方法:光標(biāo)停在代碼處,點(diǎn)擊調(diào)試菜單 -> 選擇逐語句 (快捷鍵F9)

  • 添加監(jiān)視
    可以選擇對(duì)象進(jìn)行監(jiān)視,在監(jiān)視窗口可查看對(duì)象值。
    設(shè)置方法:光標(biāo)變量或?qū)ο筇?,右鍵 或點(diǎn)擊調(diào)試菜單 -> 選擇**
    添加監(jiān)視**

    添加監(jiān)視界面

  • 本地窗口和監(jiān)視窗口
    通過逐行編譯代碼,可在立即窗口和監(jiān)視窗口查看值的內(nèi)容,發(fā)現(xiàn)錯(cuò)誤位置及原因。

    添加監(jiān)視后可見對(duì)象的值和類型

  • 立即窗口
    1、打印信息,在窗口輸入Debug.print 表達(dá)式... 可顯示表達(dá)式的值;
    2、可以測(cè)試過程,在窗口中輸入過程名稱和實(shí)參以便調(diào)用;
    3、可以檢查錯(cuò)誤號(hào),如Error 11 (提示除數(shù)為0)

  • 單步強(qiáng)制跳轉(zhuǎn)
    用途:部分時(shí)候,需要看下else的運(yùn)行結(jié)果,又懶得去調(diào)if的判斷值。
    用法:當(dāng)運(yùn)行到斷點(diǎn)或者單步時(shí),鼠標(biāo)安裝黃色那一行,拖動(dòng)你要運(yùn)行的位置。


當(dāng)然以上錯(cuò)誤可通過判斷出來,不必設(shè)置斷點(diǎn),僅為效果演示~沖鴨!小野s

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容