
从本节起,我们将正式迈入 VBA 语法的另一核心领域——程序结构。
此前章节所涉及的变量、数据类型、运算符等内容,属于 VBA 中“静态”的基础要素;而程序结构则代表了其“动态”执行逻辑。唯有掌握程序结构,才能真正构建出具备实际功能、可自主运行的 VBA 程序。
本节将聚焦于最常用、最基础的程序结构,帮助大家建立初步认知。后续章节中,我们会对每一种结构展开深入剖析与实操演练。
为便于理解,我们以如下代码为例展开讲解,建议先通读一遍:
Sub MyCode()
<pre class="brush:php;toolbar:false;">'声明循环变量和是否为空变量
Dim i As Integer
Dim isBlank As Boolean
'循环 A2-A10 单元格
For i = 2 To 10
'存储单元格是否为空的结果
isBlank = Cells(i, 1).Value = ""
'如果为空,则用上方的单元格的值填充当前单元格
If isBlank Then
Cells(i, 1) = Cells(i - 1, 1)
End If
Next iEnd Sub
该代码运行后,会逐行检查 A2 至 A10 区域内的每个单元格:若某单元格为空,则自动将其填充为上方相邻单元格的内容。
过程
过程是 VBA 中程序得以执行的最基本单位。单条或若干行独立代码无法直接运行,必须被封装在某个过程中,才具备可执行性。
示例中,以 Sub 过程名() 起始、以 End Sub 结束的代码块即构成一个完整的过程主体,其余所有语句均需置于二者之间。
Sub MyCode()</p><p>End Sub
程序语句
语句是指能够表达一个完整操作意图的单行代码。
例如,示例中的首行 Dim i As Integer 就是一条语句,含义为“声明一个整型变量 i”。同理,第二行 Dim isBlank As Boolean 也是一条独立语句。整个 VBA 过程正是由一条条这样的语句有序组合而成。
Dim i As Integer Dim isBlank As Boolean
通常情况下,一行代码对应一条语句;但若使用续行符(下划线 _)或连接符,也可将一条语句拆分至多行,详情可参考《VBA 运算符入门》相关内容。
Excel VBA 对象
我们学习 VBA 的根本目标,是高效操控 Excel 完成自动化任务。而实现这一目标的核心媒介,正是 Excel VBA 对象模型。
在本例中,Cells() 就是一个典型的 Excel VBA 对象,用于定位并操作指定单元格,其参数分别表示行号与列号。
程序运行结构
这是程序结构中最关键、也最具逻辑魅力的部分——程序运行结构。几乎所有主流编程语言都基于三种基本结构来组织逻辑流程:顺序结构、循环结构与判断结构。无论算法简单或复杂,本质上都是这三类结构的不同嵌套与组合。
1. 顺序结构
顺序结构即按既定先后次序逐行执行代码,是最直观、最基础的执行方式。
VBA 默认遵循“从上到下、从左到右”的执行顺序。如示例中,先执行变量声明,再进入 For 循环,循环内部又依次执行赋值、判断等操作。即使存在嵌套结构,其内部逻辑依然严格遵循顺序原则。
2. 循环结构
循环结构用于重复执行某段代码,适用于需要批量处理或条件满足时持续操作的场景。
本例中,For i = 2 To 10 ... Next i 所包裹的代码段即为典型的循环体。其中,For 行定义循环起止范围,Next i 标志一次循环结束,并推进计数器进入下一轮。
'循环开始 For i = 2 To 10 '此处为循环体内代码 Next i
VBA 提供多种循环形式,如 Do While、Do Until、For Each 等,本例采用的是 For...Next 循环。
3. 判断结构
判断结构又称分支结构,依据特定条件的真假(True/False),决定是否执行某段代码。
示例中,以 If 开头、End If 结尾的代码块即为标准的判断结构。当 isBlank 值为 True 时,执行赋值语句;否则跳过该部分,继续执行后续代码。
'如果为空,则用上方的单元格的值填充当前单元格 If isBlank Then Cells(i, 1) = Cells(i - 1, 1) End If
注释
编写完一段代码后,往往并非一劳永逸。实际应用中常需根据新需求调整逻辑,一段时间后再回顾时,可能已难以快速还原当初的设计意图,更遑论团队协作中的他人阅读。此时,注释就显得尤为重要。
注释是对代码功能的文字说明,不参与程序运行,仅作辅助理解之用。在 VBA 中,注释以英文单引号 ' 开头,后接任意说明性文字。
良好的注释习惯应从初学阶段就开始培养,它能极大提升代码的可读性与可维护性。
运行
现在,让我们将上述示例代码复制进 VBA 编辑器并运行,亲眼看一看它的实际效果。
总结
至此,你已掌握了 VBA 程序结构的基本框架:可执行的最小单元是“过程”,过程由一条或多条“语句”组成,每条语句表达一个完整操作;程序默认按“顺序结构”执行,在遇到“循环结构”时依条件反复执行,在遇到“判断结构”时依结果选择性执行。
本章后续内容将围绕以上三大结构逐一展开详解。学完本章,你将具备独立编写完整、可用 VBA 程序的能力。

















