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

學(xué)習(xí)教程:Excel中VBA程序代碼的調(diào)試技巧

提問人:周麗平發(fā)布時(shí)間:2021-07-24

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

image.png

圖1 創(chuàng)建斷點(diǎn)

image.png

圖2 程序在斷點(diǎn)處暫停

Sub countcir()

Dim i As Integer

Dim s As Integer

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

i=0

Do

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

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

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

Loop

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

End Sub

提示

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

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

image.png

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

提示

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

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

image.png

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

image.png

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

image.png

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

提示

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

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

image.png

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

提示

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

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

image.png

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

提示

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

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

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