Excel VBA 學習筆記7:VBA分支與End語句

這套筆記是我目前在學習的藍色幻想VBA教程和購買的《別怕,Excel VBA其實很簡單》一書的對照學習筆記,我將二者結合起來了,也有些知識點是我的小經驗補充上去的,歡迎大家批評指正!所有圖片來自藍色幻想視頻。

8VBA分支與End語句

8VBA分支與End語句

一、END語句

我們在寫If函數、過程或自定義函數的時候,最後一句總是End If 或 End Sub或End Function,這裡End的意思是強制退出所有正在運行的程序,包括這段代碼中的一切窗體。

二、Exit語句

不同於End,Exit的退出稍微輕一些,它只退出指定的語句

Exit語句是為了在符合某種情況的時候退出,所以必然是跟If判斷一起用的。一下是具體的幾個例子,用法其實是一樣的。

Advertisements

1、退出過程——Exit Sub

2、退出函數——Exit function

3、退出for循環——Exit for

4、退出do循環——Exit do

三、Goto語句

跟其它語言一樣,VBA也給出了Goto語句,它有自己的特色,還是遵從大牛們講的,不到不得已,盡量不使用Goto語句,因為那樣跳來跳去的程序的可讀性差,維護較麻煩。

1、跳轉到指定的地方

這個是跟其它語言一樣的用法,記住跳轉代號要頂格寫,後面有英文冒號


2、Gosub......return ——跳過去,再跳回來

大多數語言都是按順序自上而下執行的(循環另當別論,可將其看作一個代碼塊,整體上就是自上而下的了),但是如果我們只有個別情況需要特殊處理,處理完后我還想返回原來的位置繼續執行怎麼辦?這就需要return了,看下面的例子。

Advertisements

Goto語句還有個非常棒的用法——程序調試和容錯。我們先看一個忽略錯誤的例子。

3、on error resume next ——遇到錯誤忽略,繼續執行下一句

這個語句就是遇到錯誤跳過繼續執行下一句,把它放在代碼前面就可以忽略整段代碼的錯誤了。

有沒有高級一點的?比如我在調試程序,我想知道出錯的位置,或我想讓程序出錯后執行我寫的某些語句。這就用到Goto了。

4、on error goto ——出錯時跳到指定的行數

它的用法跟Goto一樣,只不過是在程序出錯后執行的跳轉。

5、on error goto 0——取消錯誤跳轉

發現沒,我們上面講的忽略錯誤只有開,沒有關?那如果在某些情況下的錯誤不能忽略,我必須把On Error Resume Next關閉怎麼辦?就是這句On Error Goto 0,是數字0,不是字母O。


相關筆記請參閱:

Excel VBA 學習筆記6:VBE編輯器

Excel VBA 學習筆記5:函數與公式

Excel VBA 學習筆記4:VBA變數

Excel VBA 學習筆記3:循環語句

Excel VBA 學習筆記2:條件語句

Excel VBA 學習筆記1:語句、對象、方法、屬性

Advertisements

你可能會喜歡