小兔网

在昨天的教程中说到,一行代码就是一条语句。那么,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

接下来是,两个声明变量的语句,nameage,并且语句中指定了他们的类型。

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 中利用表达式和语句,以多种形式组合使用,做到复杂的计算和操作。下一篇将介绍声明和赋值。