系統(tǒng)性的知識前面已經(jīng)講完,從本章開始,本系列教程涉及的將會是一些相對凌散的內(nèi)容。 1. 注釋代碼注釋是一件利人利己的事,為了方便自己在代碼需要更新修改時,依然能夠快速地看懂自己完的每一行代碼到底是什么意思有何用處,在關(guān)鍵點(diǎn)加上代碼注釋是很有必要的。如果要讓別人也能看懂自己的代碼,那么注釋更是不可或缺的。 VBA中有兩種注釋的方法,其一是使用單引號,另一種是Rem。在單引號后面或Rem后面的所有內(nèi)容,在程序運(yùn)行時都不會被執(zhí)行,它們就是注釋的內(nèi)容。通常注釋的內(nèi)容會被用其它顏色標(biāo)識。如下: 有點(diǎn)不方便的是,貌似VBA里面并沒有提供多行注釋的方法,要想把多行代碼注釋掉,只能在每一行前面都加上單引號或者Rem 在程序?qū)懙帽容^長的時候,就有必要在其中加入注釋。注釋通常應(yīng)使用于:
還有其它一些作者認(rèn)為應(yīng)當(dāng)寫上注釋的地方。每行都注釋肯定是多余的,但不寫注釋,通常也是不對的。什么時候該寫,什么時候不寫,只有要自己用得多了之后,才會清楚。 2. 宏按鈕前面所講的所有代碼案例,都是在VBE里面執(zhí)行的(無論是通過單擊運(yùn)行按鈕還是快捷鍵F5),但這樣明顯是不方便的。一是每次都需要打開VBE甚至要定位到某一個過程中,才可以執(zhí)行,二是如果不懂VBA操作的人,則完全不知該如何執(zhí)行了。 在Excel菜單欄-開發(fā)工具中,找到“插入”,點(diǎn)擊它可發(fā)現(xiàn)有“表單控件”和“ActiveX控件”,這里使用的是第一個,表單控件。它的第一個,就是按鈕。點(diǎn)擊一下這個按鈕,則可以在Excel表格中通過鼠標(biāo)的拖動來放置一個按鈕對象。如果使用的是表單控件中的按鈕,則在放開鼠標(biāo)后,會馬上彈出一個指定宏的對話框: 當(dāng)然這時也可以不指定,點(diǎn)取消即可。后面有需要時,通過右鍵單擊這個按鈕,選擇指定宏也可以達(dá)到同樣的效果。 其實(shí)理論上來說,VBA中的過程,或者說Excel中的宏,可以指定給Excel中的各種對象實(shí)體,比如插入的圖片、各種形狀,甚至在Excel中的生成的圖表,都是可以作為宏執(zhí)行的載體的。 我通常都通過插入形狀來設(shè)置按鈕,因?yàn)樾螤罡用烙^,可以設(shè)置它的各種格式,和Excel表格配合更為協(xié)調(diào),不影響整體版面。用如下方式插入一個自己喜歡的形狀: 在其中加入提示文字并設(shè)置好格式后,就可以右鍵單擊它,選擇“指定宏”來把相應(yīng)的VBA過程賦給它: 有興趣的朋友,可以嘗試學(xué)習(xí)使用ActiveX控件。通過鼠標(biāo)拖放一個ActiveX控件后,右鍵單擊它,查看代碼,留意代碼上方左右兩個對象窗口,點(diǎn)擊右邊的下拉列表可以發(fā)現(xiàn)這個控件可以有很多事件,例如單擊、雙擊、鼠標(biāo)移入、鼠標(biāo)移出、被選中時等 3. 錯誤處理當(dāng)代碼執(zhí)行出錯時,VBA提供了兩種處理的方式:
3.1 On Error GoTo表示如果自本行開始后面的代碼執(zhí)行出錯,則跳至指定位置繼續(xù)執(zhí)行。如:
示例中第2行設(shè)置了 注意,如果把第3行和第4行交換位置,則程序會先輸出8-5的結(jié)果(即3),再輸出error occur。 3.2 On Error Resume Next表示如果代碼執(zhí)行出錯,則從出錯代碼的下一行代碼繼續(xù)執(zhí)行。如:
代碼第3行執(zhí)行正常,第4行將出錯,于是直接執(zhí)行第5行。所以程序的輸出是: 8 error occur 最后要提醒的是,以上提到的兩種錯誤處理的方法應(yīng)盡量盡量少用。因?yàn)橛绣e誤應(yīng)該去解決它,而不是跳過它。 作業(yè):\1. 執(zhí)行以下代碼,觀察輸出結(jié)果,務(wù)必結(jié)合輸出結(jié)果理解代碼的每一行及它的邏輯。
\2. 執(zhí)行以下代碼,觀察執(zhí)行結(jié)果,務(wù)必結(jié)合輸出結(jié)果以錯誤提示理解代碼的每一行及整個代碼的邏輯。
本系列教程其它文章 Excel VBA 入門(零) |
|