VBA番外篇02:vba如何debug 需求 具體操作

需求

在執行VBA時,代碼會出現一些bug,找原因的時候就比較麻煩,編輯器自帶的調試功能就可以很方便的幫助我們定位到問題所在

具體操作

1.運行代碼 – F5

此功能雖然不在調試菜單裏,但是它是最常用的調試方法。很多時候,我們只需要快速運行某一個過程,查看其結果。

F5 快捷鍵就是運行過程或函數的快速方法。把鼠標光標移動到想要運行的過程或函數內部,按 F5 鍵即可。

2.按行運行代碼: F8

F8 快捷鍵可以從頭按行運行代碼,每次按 F8 鍵,就運行一行代碼,然後暫停。

此方法的好處是可以一行一行運行代碼,觀察每一行代碼運行結果,精確找到問題所在。

3.跳過子過程運行:SHIFT + F8

使用 F8 快捷鍵按行運行代碼時,一個過程調用另外一個子過程時,子過程內部也會按行運行代碼。

如果想跳過子過程中按行運行代碼,可以使用 SHIFT + F8 快捷鍵。這樣可以在父過程按行運行代碼,子過程一次性運行所有代碼,回到父過程繼續按行運行。

4.跳出子過程:CTRL + SHIFT + F8

在子過程按行運行代碼時,可以使用 CTRL + SHIFT + F8 快捷鍵一次性運行子過程餘下所有行代碼,跳出到父過程。

5.運行到光標位置:CTRL + F8

使用 CTRL + F8 快捷鍵,可以一次性運行到光標所在位置行後暫停。

當想要檢查某一行代碼有無問題,又確定改行以上代碼沒問題時,可以使用此快捷鍵快速運行代碼到當前行。

6.設置斷點:F9

斷點是代碼暫停運行的一行代碼。設有斷點的代碼行,背景顏色突出顯示,默認是深紅色。

設置/取消斷點有兩種方法:

  1. 光標放置在一行代碼內,按 F9 快捷鍵。再次按 F9 ,取消斷點。
  2. 鼠標點擊代碼行左側灰色背景處。再次鼠標點擊,取消斷點。

斷點的數量沒有限制,代碼每次運行到斷點處,會暫停運行。如果想一次性取消所有的斷點,可以使用 CTRL + SHIFT + F9 快捷鍵。

7.查看變量的值

使用按行運行方法或斷點設置,代碼都會進入到暫停期間。暫停時,下一步運行的代碼行背景變爲黃色,等待執行。這時把鼠標懸停在任意一變量的上面,可以看到該變量的當前值。這有助於掌握程序運行時,變量的變化情況,快速找到問題。

8.Debug.Print 函數查看變量的值

上面的方法使用鼠標查看變量的值,除此之外,還能在立即窗口,使用 Debug.Print 函數打印出指定變量的值。

9.運行時改變變量的值

代碼暫停期間除了查看變量的值外,還能實時改變變量的值,並且鼠標調整下一步運行的代碼行。

10.監視表達式

程序運行時查看某一表達式的值,可以使用監視功能。這樣查看觀察表達式的值更方便。

首先,選中要觀察的表達式,然後鼠標右鍵,彈出的菜單選擇【添加監視】。

然後,出現添加監視菜單對話框,點擊確定,完成添加。

最後,在編輯器右下方出現監視框。代碼運行及暫停時,可以看到當前表達式的值及相關信息。

11.強制結束運行

通常,代碼運行到 End Sub 或 End 語句時停止。如果想提前結束程序執行,可以點擊工具欄【重新設置】按鈕。

總結

代碼調試的主要目的是把執行代碼範圍縮小到一個小的範圍,快速定位問題所在。VBA 編輯器提供的調試功能可以很好地完成這一目標。使用調試功能可以做到以下工作:

  • 按行運行代碼;
  • 代碼運行時,查看某一變量的值;
  • 跳過或跳出子過程;
  • 設置斷點,添加監視,查看某一表達式的變化;
  • 強制結束過程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章