小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VBA 程序結(jié)構(gòu)入門

 家有仙妻寶寶 2021-10-02

從本篇開始,我們進(jìn)入 VBA 語法的另外一個重要概念,程序結(jié)構(gòu)。

上一章學(xué)習(xí)的變量數(shù)據(jù)類型、運(yùn)算符等概念,是 VBA 中'靜態(tài)'的部分。相對的,程序結(jié)構(gòu)是 VBA 中 '動態(tài)' 的部分。學(xué)習(xí)完程序結(jié)構(gòu),才能真正寫出可以運(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)行。

在示例中,Sub 過程名() 開頭,End Sub 為結(jié)尾部分是一個過程的主題,其余代碼需要放置在兩者之間。

Sub MyCode()

End Sub

程序語句

語句,是表示一個完整意思的一行代碼。

例如,示例中第一行,聲明變量就是一條語句。它表示,聲明一個整型變量。同理,第二行、第三行和其余的每一行都是語句。VBA 中的過程,就是由這樣一條條語句構(gòu)成的。

Dim i As Integer Dim isBlank As Boolean

通常,一行就是一個語句,除非它用換行符或合并符號,具體可以閱讀「VBA 運(yùn)算符入門」。

Excel VBA 對象

我們學(xué)習(xí) VBA 的最終目的是操縱 Excel,完成一些特定的目標(biāo)。其中,操縱 Excel 就是通過 Excel VBA 對象完成的。

在示例中,Cells() 就是一個 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)程序有嵌套時,嵌套的部分也是按照順序指定的。

VBA 順序結(jié)構(gòu)

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)

VBA 中,有多種循環(huán)結(jié)構(gòu),本例中是 For 循環(huán)結(jié)構(gòu)。For 循環(huán)結(jié)構(gòu)中,第一行指定循環(huán)次數(shù),最后一行表示開始下一個循環(huán)。

'循環(huán)開始
For i = 2 To 10
'這里是循環(huán)的代碼
Next i

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

判斷結(jié)構(gòu)

注釋

通常,一段代碼寫完后,不會完全沒問題。在實(shí)際使用過程中可能需要修改,符合最新的需求。過一段時間再打開查看時,可能已經(jīng)忘記了當(dāng)時的思路,不能很快想起來有些代碼實(shí)際的用途,更不用說讓別人查看了。這時,就需要注釋出場了。

注釋是對代碼的一種解釋,不影響代碼的運(yùn)行。VBA 中的注釋語句是,以英文單引號 (')開頭,后接需要解釋說明的內(nèi)容。

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 程序了。

轉(zhuǎn)載注明:文章轉(zhuǎn)載自「懶人Excel -
本文標(biāo)題:VBA 程序結(jié)構(gòu)入門

    本站是提供個人知識管理的網(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)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多