位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

Excel中VBA程序代碼的調(diào)試技巧

提問人:周麗平發(fā)布時間:2021-08-26

1、打開工作表并切換到Visual Basic編輯器,本示例的程序代碼如下所示。在“代碼”窗口中找到需要設(shè)置斷點的語句,將光標放置到代碼行中,選擇“調(diào)試”|“切換斷點”命令設(shè)置斷點,如圖1所示。按F5鍵運行程序,程序運行到斷點位置即會暫停,同時標示出暫停位置,如圖2所示。再次按F5鍵程序?qū)⒗^續(xù)運行。

image.png

圖1 創(chuàng)建斷點

image.png

圖2 程序在斷點處暫停

Sub countcir()

Dim i As Integer

Dim s As Integer

s=0 '初始化匯總變量以及起始數(shù)

i=0

Do

i=i+1 '設(shè)置下一個被加數(shù)i的大小

s=s+i '將被加數(shù)匯總到變量s中

If s>=5000 Then Exit Do '當s≥5000,執(zhí)行Exit Do語句退出循環(huán)

Loop

MsgBox“循環(huán)次數(shù)是”&i&“;匯總結(jié)果是”&s '顯示循環(huán)次數(shù)以及匯總結(jié)果

End Sub

提示

在“代碼”窗口邊界標識條上鼠標單擊可以直接創(chuàng)建斷點。將插入點光標放置到程序中后,按F9鍵可以在該語句處添加斷點,按Ctrl+Shift+F9鍵或選擇“調(diào)試”|“清除斷點”命令可以清除創(chuàng)建的斷點。

2、選擇“視圖”|“本地窗口”命令打開“本地窗口”對話框,按F8鍵逐語句執(zhí)行程序。在運行到斷點處時,“本地窗口”中將顯示程序中表達式的當前值和變量類型,如圖3所示。

image.png

圖3 程序調(diào)試時“本地窗口”顯示的內(nèi)容

提示

“本地窗口”只有在中斷模式下才能顯示相應(yīng)的內(nèi)容,其只能顯示當前過程中變量或?qū)ο蟮闹担敵绦驈囊粋€過程轉(zhuǎn)到另一個過程時,其顯示的內(nèi)容也會相應(yīng)發(fā)生改變。在“本地窗口”中,單擊對象名稱左側(cè)的Excel中VBA程序代碼的調(diào)試技巧按鈕可展開或收起對象的屬性和成員列表。

3、選擇“視圖”|“監(jiān)視窗口”命令打開“監(jiān)視窗口”對話框,選擇“調(diào)試”|“添加監(jiān)視”命令打開“添加監(jiān)視”對話框,在“表達式”文本框中輸入需要監(jiān)視的條件,選擇“當監(jiān)視值為真時中斷”單選按鈕,單擊“確定”按鈕關(guān)閉對話框,如圖4所示。再次打開“添加監(jiān)視”對話框,在“表達式”文本框中輸入變量名,選擇“監(jiān)視表達式”單選按鈕,單擊“確定”按鈕關(guān)閉對話框,如圖5所示。按F5鍵運行程序,程序?qū)⒃跐M足條件(即i=50)時進入中斷模式,“代碼”窗口中指示出程序當前運行語句,同時在“本地窗口”中將可以看到監(jiān)視變量的值,如圖6所示。

image.png

圖4 添加監(jiān)視條件

image.png

圖5 添加第二個監(jiān)視條件

image.png

圖6 “監(jiān)視窗口”中顯示變量的變化

提示

如果需要編輯已有的監(jiān)視條件,可以在“監(jiān)視窗口”中選擇某個監(jiān)視條件后選擇“調(diào)試”|“編輯監(jiān)視”命令,打開“編輯監(jiān)視”對話框?qū)ΡO(jiān)視條件進行編輯修改。在“監(jiān)視窗口”中選擇監(jiān)視條件后,按Delete鍵可以將其刪除。

4、選擇“視圖”|“立即窗口”命令打開“立即窗口”對話框,在代碼中添加Debug.Print s和Debug.Print i語句。按F5鍵運行程序,“立即窗口”中將顯示變量s和變量i的運行結(jié)果,如圖7所示。

image.png

圖7 “立即窗口”中顯示兩個變量的值

提示

Debug是代碼調(diào)試的一個重要工具,使用Debug對象的Print方法能使程序員在不暫停程序的情況下監(jiān)控變量執(zhí)行過程中的變化。Print方法在“立即窗口”中顯示文本,Print方法顯示的文本將不會在程序運行時看到,只能在“立即窗口”中顯示。

5、在“代碼”窗口中為程序添加斷點,運行程序后,在“立即窗口”中輸入"?i"后按Enter鍵,“立即窗口”中將顯示程序中斷時變量i的值;輸入"?s"后按Enter鍵,“立即窗口”中顯示變量s的當前值,如圖8所示。

image.png

圖8 在“立即窗口”中顯示變量的值

提示

“立即窗口”能夠顯示當前語境中變量或表達式的值,值可以通過Print方法或問號“?”來顯示。這里要注意,“立即窗口”輸出結(jié)果最多只有200行,超過200行則只顯示最后200行的內(nèi)容。

繼續(xù)查找其他問題的答案?

回復(fù)(0)
返回頂部