VBA 程序结构入门

从本篇开始,我们进入 VBA 语法的另外一个重要概念,程序结构。

上一章学习的变量数据类型运算符等概念,是 VBA 中'静态'的部分。相对的,程序结构是 VBA 中 '动态' 的部分。学习完程序结构,才能真正写出可以运行的 VBA 程序。

本篇我们先介绍程序结构最常用的部分,深入学习前有一个基本概念。本章余下的教程中,将详细介绍每一个程序结构。

本文目录 隐藏
程序结构示例
过程
程序语句
Excel VBA 对象
程序运行结构

1.顺序结构
2.循环结构
3.判断结构
注释
运行
总结

程序结构示例

首先,本篇将使用以下代码,介绍各种程序结构,大家可以先看一下。

Sub MyCode() '声明循环变量和是否为空变量 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 i End Sub

以上代码运行后,在 A2:A10 单元格区域,依次判断每一个单元格是否为空,如果是空,则用上一个单元格的值填充。

过程

过程是 VBA 中,程序实际运行的最小结构。单独的一行或多行代码无法运行,必须把它们放置在一个过程里,才能运行。

在示例中,Sub 过程名() 开头,End Sub 为结尾部分是一个过程的主题,其余代码需要放置在两者之间。

Sub MyCode()

End Sub

程序语句

语句,是表示一个完整意思的一行代码。

例如,示例中第一行,声明变量就是一条语句。它表示,声明一个整型变量。同理,第二行、第三行和其余的每一行都是语句。VBA 中的过程,就是由这样一条条语句构成的。

Dim i As Integer Dim isBlank As Boolean

通常,一行就是一个语句,除非它用换行符或合并符号,具体可以阅读「VBA 运算符入门」。

Excel VBA 对象

我们学习 VBA 的最终目的是操纵 Excel,完成一些特定的目标。其中,操纵 Excel 就是通过 Excel VBA 对象完成的。

在示例中,Cells() 就是一个 Excel VBA 对象,表示一个单元格,提供行号和列号指定单元格。

程序运行结构

接下来是程序结构中最核心的部分,也是最有意思的部分,程序运行结构。大部分编程语言都具备基本的三种程序运行结构,分别是顺序结构、循环结构、判断结构。各种简单到复杂的算法,都是由这三种基本的结构,相互组合而完成。

1.顺序结构

首先是基本的顺序结构。顺序结构,顾名思义就是按照顺序依次执行。VBA 中的顺序就是从上到下、从左到右的顺序。

在示例中,首先运行两个声明语句,然后运行循环结构,以此类推。值得注意的事,当程序有嵌套时,嵌套的部分也是按照顺序指定的。

2.循环结构

第二个基本结构是循环结构。当使用循环结构时,循环部分代码,按照指定的循环次数,循环重复执行。

在我们的示例中,For 至 Next i 之间的代码就是一个循环代码。

VBA 中,有多种循环结构,本例中是 For 循环结构。For 循环结构中,第一行指定循环次数,最后一行表示开始下一个循环。

'循环开始
For i = 2 To 10
'这里是循环的代码
Next i

3.判断结构

最后一种基本结构是,判断结构。简单来说,该结构中,当提供的表达式为真(True)时,判断结构的主体部分才会被执行,否则跳过。

在示例代码中,If 开头和 End If 结尾处是典型的判断结构。第一行,判断 isBlank 变量是否为真,如果是,则执行判断结构主体部分,否则跳过。

'如果为空,则用上方的单元格的值填充当前单元格 If isBlank Then Cells(i, 1) = Cells(i - 1, 1) End If

注释

通常,一段代码写完后,不会完全没问题。在实际使用过程中可能需要修改,符合最新的需求。过一段时间再打开查看时,可能已经忘记了当时的思路,不能很快想起来有些代码实际的用途,更不用说让别人查看了。这时,就需要注释出场了。

注释是对代码的一种解释,不影响代码的运行。VBA 中的注释语句是,以英文单引号 (')开头,后接需要解释说明的内容。

注释可以让代码更容易理解,建议从一开始就养成写注释的习惯。

运行

下面,我们实际运行我们的示例代码,看一看它具体的效果。

总结

现在你学会了基本的 VBA 程序结构。可以运行的最小单位是 VBA 过程,一个 VBA 过程由一个或多个语句组成,每一个语句表示一个完整的含义。VBA 是按顺序结构执行,遇到循环结构和判断结构时,根据提供的参数循环重复执行,或跳过某一段代码。

本章余下教程,将详细介绍以上每一部分。学完本章后,你就可以写出一个完整可运行的 VBA 程序了。

转载注明:文章转载自「懒人Excel - lanrenexcel.com
本文标题:VBA 程序结构入门
(0)

相关推荐

  • Excel VBA编程教程(基础一)

    VBA介绍 Visual Basic for Applications(VBA)是 VisualBasic 的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言.主要 ...

  • Excel编程周末速成班第26课:处理运行时错误

    excelperfect 主要内容: 理解运行时错误及其原因 如何在过程中启用错误捕获 使用Err对象 编写错误处理代码 延迟错误处理 使用错误作为编程工具 运行时错误是在程序运行时发生的错误,除非处 ...

  • VBA 程序循环结构

    VBA 中,循环结构用于多次重复执行同一段代码.重复次数通过特定数字或特定条件控制. 通过控制循环过程中特定变量,循环结构可执行复杂的重复任务. 循环结构的执行流程可简单的表示如下: 本文目录 隐藏 ...

  • Excel VBA程序的编写

    摘要:本文通过代码演示,介绍如何从Active Directory中检索信息并将信息显示在带格式的Excel工作表中. (注:本文摘自Microsoft Corporation 技术人员Greg St ...

  • C语言基础丨(六)程序结构——分支(选择)结构【2】

    顺序结构的程序虽然能解决计算.输出等问题,但不能做判断再选择.对于要先做判断再选择的问题就要使用分支结构. 分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序.分支结构的程序 ...

  • ABAP 标准培训教程 BC400 学习教程之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍

    很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到,我的 ABAP 学习之路,其实并没有阅读过中文的 ...

  • C# 程序结构

    在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构,以便作为接下来章节的参考. C# Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明(N ...

  • Android应用程序------Android程序结构

    在建立HelloAndroid程序的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改.下面逐一的介绍 在"Package Explore&qu ...

  • 库卡机器人程序结构和组成的讲解

    程序流程控制 除了纯运动指令和通讯指令(切换和等待功能)之外,在机器人程序中还有大量用于控制程序流程的程序.其中包括: 循环 | 循环是控制结构.它不断重复执行指令块指令,直*出现终止条件. 无限循环 ...

  • Java学习——2、基本程序结构

    自从1996年Java第一次被发布就引起了人们极大的关注. 它具有令人赏心悦目的语法,易于理解的语义,高质量的执行环境,功能庞大的库-- 今天,我以一个最简单的欢迎程序来简单解释Java的基本的程序设 ...

  • 卢氏结构入门(5)

    (二)结构拳法自始自终反对木桩和沙袋等踢打练习,所以和任何一项运动一样要出成绩是不能速成的,有人认为拳击.摔跤等对抗运动练得快,所以很多门派便以速成来招揽生意,其实一个真正的专业拳击.摔跤运动员每天的 ...