從本篇開始,我們進(jìn)入 VBA 語法的另外一個重要概念,程序結(jié)構(gòu)。 上一章學(xué)習(xí)的變量、數(shù)據(jù)類型、運(yùn)算符等概念,是 VBA 中 本篇我們先介紹程序結(jié)構(gòu)最常用的部分,深入學(xué)習(xí)前有一個基本概念。本章余下的教程中,將詳細(xì)介紹每一個程序結(jié)構(gòu)。 程序結(jié)構(gòu)示例首先,本篇將使用以下代碼,介紹各種程序結(jié)構(gòu),大家可以先看一下。 Sub MyCode()
'聲明循環(huán)變量和是否為空變量
Dim i As Integer
Dim isBlank As Boolean
'循環(huán) A2-A10 單元格
For i = 2 To 10
'存儲單元格是否為空的結(jié)果
isBlank = Cells(i, 1).Value = ''
'如果為空,則用上方的單元格的值填充當(dāng)前單元格
If isBlank Then
Cells(i, 1) = Cells(i - 1, 1)
End If
Next i
End Sub
以上代碼運(yùn)行后,在 A2:A10 單元格區(qū)域,依次判斷每一個單元格是否為空,如果是空,則用上一個單元格的值填充。 過程過程是 VBA 中,程序?qū)嶋H運(yùn)行的最小結(jié)構(gòu)。單獨(dú)的一行或多行代碼無法運(yùn)行,必須把它們放置在一個過程里,才能運(yùn)行。 在示例中,
程序語句語句,是表示一個完整意思的一行代碼。 例如,示例中第一行,聲明變量就是一條語句。它表示,聲明一個整型變量。同理,第二行、第三行和其余的每一行都是語句。VBA 中的過程,就是由這樣一條條語句構(gòu)成的。 Dim i As Integer
Dim isBlank As Boolean
Excel VBA 對象我們學(xué)習(xí) VBA 的最終目的是操縱 Excel,完成一些特定的目標(biāo)。其中,操縱 Excel 就是通過 Excel VBA 對象完成的。 在示例中, 程序運(yùn)行結(jié)構(gòu)接下來是程序結(jié)構(gòu)中最核心的部分,也是最有意思的部分,程序運(yùn)行結(jié)構(gòu)。大部分編程語言都具備基本的三種程序運(yùn)行結(jié)構(gòu),分別是順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、判斷結(jié)構(gòu)。各種簡單到復(fù)雜的算法,都是由這三種基本的結(jié)構(gòu),相互組合而完成。 1.順序結(jié)構(gòu)首先是基本的順序結(jié)構(gòu)。順序結(jié)構(gòu),顧名思義就是按照順序依次執(zhí)行。VBA 中的順序就是從上到下、從左到右的順序。 在示例中,首先運(yùn)行兩個聲明語句,然后運(yùn)行循環(huán)結(jié)構(gòu),以此類推。值得注意的事,當(dāng)程序有嵌套時,嵌套的部分也是按照順序指定的。 2.循環(huán)結(jié)構(gòu)第二個基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)。當(dāng)使用循環(huán)結(jié)構(gòu)時,循環(huán)部分代碼,按照指定的循環(huán)次數(shù),循環(huán)重復(fù)執(zhí)行。 在我們的示例中,F(xiàn)or 至 Next i 之間的代碼就是一個循環(huán)代碼。 VBA 中,有多種循環(huán)結(jié)構(gòu),本例中是 For 循環(huán)結(jié)構(gòu)。For 循環(huán)結(jié)構(gòu)中,第一行指定循環(huán)次數(shù),最后一行表示開始下一個循環(huán)。
3.判斷結(jié)構(gòu)最后一種基本結(jié)構(gòu)是,判斷結(jié)構(gòu)。簡單來說,該結(jié)構(gòu)中,當(dāng)提供的表達(dá)式為真(True)時,判斷結(jié)構(gòu)的主體部分才會被執(zhí)行,否則跳過。 在示例代碼中,If 開頭和 End If 結(jié)尾處是典型的判斷結(jié)構(gòu)。第一行,判斷 isBlank 變量是否為真,如果是,則執(zhí)行判斷結(jié)構(gòu)主體部分,否則跳過。 '如果為空,則用上方的單元格的值填充當(dāng)前單元格
If isBlank Then
Cells(i, 1) = Cells(i - 1, 1)
End If
注釋通常,一段代碼寫完后,不會完全沒問題。在實(shí)際使用過程中可能需要修改,符合最新的需求。過一段時間再打開查看時,可能已經(jīng)忘記了當(dāng)時的思路,不能很快想起來有些代碼實(shí)際的用途,更不用說讓別人查看了。這時,就需要注釋出場了。 注釋是對代碼的一種解釋,不影響代碼的運(yùn)行。VBA 中的注釋語句是,以英文單引號 注釋可以讓代碼更容易理解,建議從一開始就養(yǎng)成寫注釋的習(xí)慣。 運(yùn)行下面,我們實(shí)際運(yùn)行我們的示例代碼,看一看它具體的效果。 總結(jié)現(xiàn)在你學(xué)會了基本的 VBA 程序結(jié)構(gòu)??梢赃\(yùn)行的最小單位是 VBA 過程,一個 VBA 過程由一個或多個語句組成,每一個語句表示一個完整的含義。VBA 是按順序結(jié)構(gòu)執(zhí)行,遇到循環(huán)結(jié)構(gòu)和判斷結(jié)構(gòu)時,根據(jù)提供的參數(shù)循環(huán)重復(fù)執(zhí)行,或跳過某一段代碼。 本章余下教程,將詳細(xì)介紹以上每一部分。學(xué)完本章后,你就可以寫出一個完整可運(yùn)行的 VBA 程序了。
本文標(biāo)題:VBA 程序結(jié)構(gòu)入門 |
|