讀古今文學網 > 別怕,ExcelVBA其實很簡單 > 7.3 Excel已經準備好的調試工具 >

7.3 Excel已經準備好的調試工具

對於不太複雜的程序,尋找錯誤並不太難。當程序過長時,從滿堆的代碼中查找和修正錯誤就要傷神得多。

幸運的是,Excel已經準備好了一套方便有效的代碼調試工具,善用它,可以使調試代碼的工作變得更簡單、更快捷。

7.3.1 讓程序進入中斷模式

正因為在中斷模式下可以一邊運行程序,一邊發現錯誤並修正錯誤,所以調試代碼多數時間都選擇在中斷模式下進行。

出現編譯錯誤時

如果程序存在編譯錯誤,運行時系統會自動顯示錯誤提示對話框,如圖7-1所示。

對話框上有兩個按鈕,單擊【幫助】按鈕可以查看該錯誤的幫助信息;單擊【確定】按鈕即可進入中斷模式,如圖7-4所示。

圖7-4 出現編譯錯誤時

出現運行時錯誤

如果程序存在運行時錯誤,運行後會停止在發生錯誤的代碼所在行,自動顯示錯誤提示對話框,如圖7-2所示。

這時可以單擊對話框上的【調試】按鈕讓程序進入中斷模式,如圖7-5所示。

圖7-5  出現運行時錯誤

中斷一個正在執行的程序

如果程序中沒有出現編譯錯誤和運行時錯誤,程序會一直執行,直到結束。如果出現死循環,會一直執行下去,不會中止。如:

如果一個程序正在運行,當按下<Esc>鍵或<Ctrl+Break>組合鍵後,系統會中斷執行它,並彈出提示對話框,如圖7-6所示,單擊對話框上的【調試】按鈕即可讓程序進入中斷模式。

圖7-6 中斷一個正在運行的程序

7.3.2 為程序設置斷點

什麼是斷點

斷點像公路中途在檢查站,當汽車開到這裡就得停車接受檢查。

如果你懷疑程序中某行(或某段)的代碼存在問題,可以在該處設置斷點。當程序運行到斷點所在行時會暫停執行,停止在斷點所在行,進入中斷模式,如圖7-7所示。

圖7-7 程序停止在斷點所在行

進入中斷模式後,可以按<F8>鍵逐句執行程序,觀察運行情況,從而發現並修正存在的錯誤。

給程序設置斷點

方法一:

設置斷點的方法一,如圖7-8所示。

圖7-8 利用<F9>鍵設置或清除斷點

方法二:

設置斷點的方法二,如圖7-9所示。

圖7-9 利用菜單命令設置或清除斷點

方法三:

設置斷點的方法三,如圖7-10所示。

圖7-10 單擊邊界條設置或清除斷點

如果想清除程序中的所有斷點,可以依次執行【調試】一【清除所有斷點】菜單命令(或按<Ctrl+Shift+F9>組合鍵),如圖7-11所示。

圖7-11 清除程序中的所有斷點

7.3.3 使用Stop語句

給程序設置的斷點會在關閉文件的同時自動取消,如果你需要重新打開工作簿後繼續使用設置的斷點,可以使用Stop語句。

在程序裡加入一個Stop語句,就像給程序設置了一個斷點,當程序運行到Stop語句時,會停止在Stop語句所在行,進入中斷模式,如圖7-12所示。

圖7-12 使用Stop語句中斷程序

Stop語句在重新打開文件後依然存在,當不再需要Stop語句時,需要手動清除它。

7.3.4 使用立即窗口

如果你懷疑程序中的錯誤是因為變量設置錯誤引起的,可以在程序中使用Debug. Print語句將程序運行中變量或表達式的值輸出到【立即窗口】中,程序運行結束後,在【立即窗口】中查看變量值的變化情況,如圖7-13所示。

圖7-13 使用立即窗口查看變量的值

如果程序處於中斷模式下,也可以將光標移到變量名稱上,直接查看變量的值,如圖7-14所示。

圖7-14 在中斷模式下查看變量的值

7.3.5 使用本地窗口

在中斷模式下,還可以利用【本地窗口】查看變量的數據類型和當前值,如圖7-15所示。

圖7-15 使用本地窗口查看變量的值和數據類型

如果【本地窗口】沒有打開,可以依次執行【視圖】一【本地窗口】菜單命令打開它,如圖7-16所示。

圖7-16 調出本地窗口

7.3.6 使用監視窗口

在中斷模式下還可以使用【監視窗口】觀察程序中變量或表達式的值。

使用【監視窗口】來監視變量或表達式前,必須先定義要監視的變量或表達式,監視表達式可以在設計模式或中斷模式下定義。

使用快速監視

使用快速監視如圖7-17所示。

圖7-17 快速監視

完成後為程序設置斷點,運行程序,就可以在【監視窗口】中看到相應的信息了,如圖7-18所示。

圖7-18 使用監視窗口

手動添加監視

手動添加監視如圖7-19所示。

圖7-19 手動添加監視

只有當程序處於中斷模式時才能使用【監視窗口】,所以只有將程序切換到中斷模式,【監視窗口】才能正常工作。

編輯或刪除監視表達式

編輯或刪除監視表達式如圖7-20所示。

圖7-20 編輯或刪除監視