VBA 表达式和语句

在昨天的教程中说到,一行代码就是一条语句。那么,VBA 中的语句具体是什么,语句还包括哪些基本的结构,语句和表达式有什么关系,今天的教程中,给大家详细介绍。

表达式

首先,相比语句更小的一种代码结构是,表达式。按照字面意思,可以分为两部分,表达和式。组合起来是,通过一种式子,表达相应的值。

VBA 中,返回一个值的代码片段,称之为表达式。

图片[1]-VBA 表达式和语句-一鱼

最简单的,最基本的数据写出来就是一个表达式,它返回的是自己本身(100、”Excel” 等)。

100 '=> 100
"Hello World" '=> Hello World
True '=> True
#2018-11-1# '=>2018-11-1

表达式也可以是,多个数据之间的运算表达式。例如,算数运算、逻辑运算、连接运算等。

1+2 '=> 3
10 > 5 '=> True
"Hello " & "World" '=> Hello World

进一步,表达式可以是多个表达式之间的运算。这种时候,往往会把多个表达式用()括起来,保证运算顺序。

Not (10 > 5) '=> False
(1 + 2) - (10 - 5) '=> -2

使用 VBA 函数也可以是表达式,例如 Left 函数返回左侧指定长度文本。

Left("Hello World", 5) '=> Hello
Abs(-10) '=> 10
Year(#2018-11-1#) '=> 2018

当然,最重要的,表达式中能使用变量。

Dim place As String
place = "World"

"Hello" & place '=> Hello World
Left(place, 3) '=> Wor

语句

编程中光有表达式没有办法做成什么事,需要把表达式与其他元素组合成一个语句,才能发挥它的作用。

VBA 中,一条语句是一个完整指令的。它可以包含关键词、运算符、变量、常量以及表达式。

语句有三大类,分别是:

  • 声明式语句,也就是声明变量、常量、过程或者函数。
  • 执行式语句,执行指定动作。动作可以包括执行一个过程、开始一个循环、判断表达式等。
  • 赋值语句,给变量赋值,是执行式语句的特殊形式。

接下来,分别介绍三类语句。

1.声明式语句

在之前的多篇文章,大家已经看到了很多声明式语句。声明式语句用来声明一个新的变量(包括类型),过程、函数、对象、数组等。

我们看以下代码。

Sub MyCode()
    Dim name As String
    Dim age As Integer
End 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 Integer
End Sub

_ (下划线)

相反,当一条语句过长时,可能需要分成多行书写。如果把一条语句直接回车分成多行,VBA 也会报错。这时需要把空格 + _放置在换行处。

Sub MyCode()
    
    Dim name As String
    
    name = "Hello" & _
    	"World"
    
End Sub

总结

表达式是返回一个值的式子,语句是一个完整的指令。语句包括以下三类:

  • 声明式语句
  • 执行式语句
  • 赋值语句

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

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

供学习和研究使用,请在下载后24小时内删除
购买前可以联系作者确认资源信息,防止交易矛盾
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容