乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Excel VBA入門(七)注釋、宏按鈕及錯誤處理

       刮骨劍 2018-12-26

      系統(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)使用于:

      • 邏輯復(fù)雜的地方
      • 調(diào)用自定義的函數(shù)或過程
      • 每個函數(shù)和過程的開頭。描述本函數(shù)和過程的作用

      還有其它一些作者認(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提供了兩種處理的方式:

      • On Error GoTo
      • On Error Resume Next

      3.1 On Error GoTo

      表示如果自本行開始后面的代碼執(zhí)行出錯,則跳至指定位置繼續(xù)執(zhí)行。如:

      Sub te4()
          On Error GoTo con
          Debug.Print "a" + 3
          Debug.Print 8 - 5
      con:
          Debug.Print "error occur"
      End Sub

      示例中第2行設(shè)置了On Error GoTo con,即當(dāng)?shù)?行出錯時,就跳到con標(biāo)記處,執(zhí)行自con后的代碼。標(biāo)記后面應(yīng)加上冒號(:)。第3行中,用雙引號包含的a是一個字符串,而3是一個數(shù)字,直接將字符串與數(shù)字相加是會出錯的,所以這里會觸發(fā)錯誤,第4行不會被執(zhí)行到,程序會直接跳轉(zhuǎn)到con處,執(zhí)行后面的Debug.Print語句。程序輸出error occur。

      注意,如果把第3行和第4行交換位置,則程序會先輸出8-5的結(jié)果(即3),再輸出error occur。

      3.2 On Error Resume Next

      表示如果代碼執(zhí)行出錯,則從出錯代碼的下一行代碼繼續(xù)執(zhí)行。如:

      Sub te3()
          On Error Resume Next
          Debug.Print 5 + 3
          Debug.Print "a" + 3
          Debug.Print "error occur"
      End Sub

      代碼第3行執(zhí)行正常,第4行將出錯,于是直接執(zhí)行第5行。所以程序的輸出是:

      8

      error occur

      最后要提醒的是,以上提到的兩種錯誤處理的方法應(yīng)盡量盡量少用。因?yàn)橛绣e誤應(yīng)該去解決它,而不是跳過它。

      作業(yè):

      \1. 執(zhí)行以下代碼,觀察輸出結(jié)果,務(wù)必結(jié)合輸出結(jié)果理解代碼的每一行及它的邏輯。

      Sub test()
          On Error GoTo con
          Debug.Print 3 + 3
          Debug.Print 5 * 5
          
      con:
          Debug.Print "error occur"
          Debug.Print "Do you understand this all?"
      End Sub

      \2. 執(zhí)行以下代碼,觀察執(zhí)行結(jié)果,務(wù)必結(jié)合輸出結(jié)果以錯誤提示理解代碼的每一行及整個代碼的邏輯。

      Sub test1()
          
          On Error GoTo con
          On Error GoTo 0
          Debug.Print 3 + 3
          Debug.Print "c" - 3
          Debug.Print 5 + 5
      con:
          Debug.Print "error occur"
          Debug.Print "Do you understand this all?"
      End Sub

      本系列教程其它文章

      Excel VBA 入門(零)
      Excel VBA入門(一)數(shù)據(jù)類型
      Excel VBA入門(二)數(shù)組和字典
      Excel VBA入門(三) 流程控制1-條件選擇
      Excel VBA入門(四)流程控制2-循環(huán)控制
      Excel VBA入門(五)Excel對象操作
      Excel VBA入門(六)過程和函數(shù)
      Excel VBA入門(七)注釋、宏按鈕及錯誤處理
      Excel VBA入門(八)單元格邊框
      Excel VBA入門(九)操作工作薄

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多