Excel VBA 學習筆記7:VBA分支與End語句
這套筆記是我目前在學習的藍色幻想VBA教程和購買的《別怕,Excel VBA其實很簡單》一書的對照學習筆記,我將二者結合起來了,也有些知識點是我的小經驗補充上去的,歡迎大家批評指正!所有圖片來自藍色幻想視頻。
第8節VBA分支與End語句
第8節VBA分支與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。
相關筆記請參閱: