在昨天的教程中说到,一行代码就是一条语句。那么,VBA 中的语句具体是什么,语句还包括哪些基本的结构,语句和表达式有什么关系,今天的教程中,给大家详细介绍。
戳我学习>>知识兔精品课《Office2019零基础入门精通全套大师级课程》
表达式
首先,相比语句更小的一种代码结构是,表达式。按照字面意思,可以分为两部分,表达和式。组合起来是,通过一种式子,表达相应的值。
VBA 中,返回一个值的代码片段,称之为表达式。
最简单的,最基本的数据写出来就是一个表达式,它返回的是自己本身(100、”Excel” 等)。
100 '=> 100"Hello World" '=> Hello WorldTrue '=> True#2018-11-1# '=>2018-11-1
表达式也可以是,多个数据之间的运算表达式。例如,算数运算、逻辑运算、连接运算等。
1+2 '=> 310 > 5 '=> True"Hello" & "World" '=> Hello World
进一步,表达式可以是多个表达式之间的运算。这种时候,往往会把多个表达式用()
括起来,保证运算顺序。
Not (10 > 5) '=> False(1 + 2) - (10 - 5) '=> -2
使用 VBA 函数也可以是表达式,例如 Left
函数返回左侧指定长度文本。
Left("Hello World", 5) '=> HelloAbs(-10) '=> 10Year(#2018-11-1#) '=> 2018
当然,最重要的,表达式中能使用变量。
Dim place As Stringplace = "World""Hello" & place '=> Hello WorldLeft(place, 3) '=> Wor
语句
编程中光有表达式没有办法做成什么事,需要把表达式与其他元素组合成一个语句,才能发挥它的作用。
VBA 中,一条语句是一个完整指令的。它可以包含关键词、运算符、变量、常量以及表达式。
语句有三大类,分别是:
- 声明式语句,也就是声明变量、常量、过程或者函数。
- 执行式语句,执行指定动作。动作可以包括执行一个过程、开始一个循环、判断表达式等。
- 赋值语句,给变量赋值,是执行式语句的特殊形式。
接下来,分别介绍三类语句。
1.声明式语句
在之前的多篇文章,大家已经看到了很多声明式语句。声明式语句用来声明一个新的变量(包括类型),过程、函数、对象、数组等。
我们看以下代码。
Sub MyCode() Dim name As String Dim age As IntegerEnd Sub
这段代码中,第一个语句就是第一行,声明一个 VBA 过程。声明过程以 Sub
开头,后接过程名()
。对应的,最后一行是,过程的结束语句,即 End Sub
接下来是,两个声明变量的语句,name
和 age
,并且语句中指定了他们的类型。
2.执行式语句
执行式语句执行一个动作。这个动作可以是运行过程、开始循环、判断表达式等。
我们以一个判断语句为例,看一下代码。
Sub MyCode() Dim name As String Dim age As Integer name = "Zhang San" age = 28 If age > 25 then MsgBox name & " 岁数超过25了。" End If End Sub
这段代码中,If
语句判断 age
变量是否大于 25,如果是,则运行与 End If
之间的代码,否则跳过不运行。这其中的If ... End If
就是一个执行式语句。
这种执行式语句是 VBA 语法中的最重要的部分,在接下来的学习中,将详细介绍。
3.赋值语句
赋值语句,顾名思义给变量赋值。它是执行式语句的一种特殊形式。
赋值语句的核心是 =
,左侧是变量,右侧是赋的值。
我还是看上述代码,这次我们加上赋值语句。
Sub MyCode() Dim name As String Dim age As Integer name = "Zhang San" age = 28 End Sub
显然,name = "Zhang San"
和age = 28
是赋值语句。
另外值得注意的是,VBA 中的变量可以重复赋值,其值等于最后一次赋的值。这在实际的 VBA 开发中十分有用。
书写语句的 2 个技巧
在运算符一文中,简单说了 2 个运算符,一个是英文冒号(:),一个是下划线(_)。
运算符 | 说明 |
---|---|
: ( 英文冒号) | 将两行代码放置在一行 |
_ (下划线) | 将一行代码分解成两行 |
: ( 英文冒号)
通常,VBA 中直接将多个语句放置在一行,VBA 会报错。如果想要放置在一行,需要用 : ( 英文冒号)
连接多个语句。
Sub MyCode() Dim name As String : Dim age As IntegerEnd Sub
_ (下划线)
相反,当一条语句过长时,可能需要分成多好书写。如果把一条语句直接回车分成多行,VBA 也会报错。这时需要把空格 + _
放置在换行处。
Sub MyCode() Dim name As String name = "Hello" & _ "World" End Sub
总结
表达式是返回一个值的式子,语句是一个完整的指令。语句包括以下三类:
- 声明式语句
- 执行式语句
- 赋值语句
VBA 中利用表达式和语句,以多种形式组合使用,做到复杂的计算和操作。下一篇将介绍声明和赋值。