Excel VBA变量和常量

在编写程序时,少不了要使用变量和常量,它们都是程序中很重要的元素,是组织程序的基础。

一个示例

下面是一个简单的VBA程序,用来计算半径为5的圆的面积。

Sub 示例2()

Const PI = 3.1415926

Dim r As Integer

Dim area As Double

r = 5

‘ 计算半径为5的圆的面积

area = PI * r * r

End Sub

其中,r和area就是变量,PI就是常量。

什么是变量

变量就是在计算机中根据其数据类型预先占用一个位置,在这个位置里可以放置相应的数据。换句话说,我们要在计算机中保存数据,就要有相应的空间,变量就是用来指明这些空间的。

我们可以将值存储在变量中,供程序使用,如下图1所示。

图1

注意,如果将另一个值放入已经存在值的变量中,那么原值就被新值所取代。

命名变量

在程序中,我们经常会使用多个变量。这样,就需要给变量起不同的名字,以区分这些变量,例如图1中的r就是一个变量的名字。

VBA规定了变量名的命名规则:

可以使用字母、数字和下划线,但必须以字母开头。

变量名最长不可以超过255个字符。

变量名不区分大小写。

变量名不能与VBA保留字同名,不能与VBA中的函数、语句和方法同名。

变量名中不能使用空格和句点。

这就说明,我们在命名变量名称时:

不能以数字或下划线开头。

不能在变量名中使用特殊类型的声明字符(#、$、%、&或!)。

不能在变量名中使用运算符(+、-、*、/、<、>、、.、,、:)。

下列字符也不能使用(?、=、”、;、`、@、^)。

在同一作用域内不能有相同的名字。

变量的数据类型

在前一篇中,我们过程序中的各种数据都有自已的数据类型(例如整型、字符串型、布尔型等),变量也有自已的数据类型。

在定义变量时,通常要说明变量要存储什么数据类型的值。也就是说,创建变量后,也决定了存储在该变量中的值的数据类型。

例如,上面示例中的:

Dim r As Integer

Dim area As Double

定义变量时,指定变量r存放Integer型的数据,而变量area存放Double型的数据。

说明:与很多编程语言不同,VBA比较特殊,它在定义变量时,并不一定需要声明存储在变量中的数据类型。VBA可以自动处理运用数据时涉及到的细节,这对程序编写来说的确很省事,但你会发现,这样的程序执行的速度会更慢,使用内存的效率也不高。如果我们在定义变量时严格指明该变量的数据类型,那么不仅能有效利用计算机空间,并且该变量在进行数据类型转换时,计算机会自动告诉你发生的问题。

声明变量

如上所述,示例中已经给出了声明变量的方法,即使用Dim语句来对变量进行声明(或定义)。声明变量的一般语法结构是:

图2

当然,还可以使用Public来声明一个公有变量。正如前面所说的,你可以省略掉As及之后的数据类型来声明变量,让VBA自已处理数据,但这并不会带来多少好处。

确切地说,当省略数据类型时,VBA会使用默认的数据类型Variant,在程序处理过程中,会根据所处理内容来改变变量的数据类型。

说明:VBA中“古老的”声明变量的方法

VBA也延续了BASIC定义变量数据类型的方法,即将一个字符加到变量名称后面来指定变量的数据类型,例如:

Dim r%

将变量r声明为整型。下表列出了有类型声明字符的VBA数据类型。

数据类型类型声明字符

Integer(整型)%

Long(长整型)&

Single(单精度浮点型)!

Double(双精度浮点型)#

Currency(货币型)@

String(字符串型)$

常量

在程序中,如果我们处理的某些数据从不会改变,那么我们可以将它们定义成常量,即决不会发生改变的数值或字符串。

声明常量

VBA规定使用Const语句来声明常量。例如本文开头示例中的:

Const PI = 3.1415926

定义了一个名为PI的常量,它的值是3.1415926,在程序中使用该常量,其值不会发生变化。我们没有指明PI的数据类型,VBA会根据它的值确定数据类型,PI的数据类型是Double型。当然,我们可以在声明的同时明确指定常量的数据类型:

Const PI As Double = 3.1415926

定义了常量之后,如果要在程序中修改它的值,例如给常量赋新值,将会产生错误。和变量一样,也可以在前面添加Public来声明一个公有常量。

说明:声明常量的好处

在程序中,将多处使用的值声明为常量,至少有两大好处:

如果要修改值,只需手动修改常量定义即可,不必到多个地方修改同一值,不仅繁锁,也容易遗漏。

给常量起一个好的名字,能够清楚地表明其意图,让代码更具可读性。

除了我们定义的常量外,VBA还提供了很多预定义的常量,这些常量不用明确声明就可使用。VBA预定义的常量通常以“xl”或“vb”开头。

赞(68)
office办公分享 » Excel VBA变量和常量

本文链接:Excel VBA变量和常量https://www.officeapi.cn/87433.html

OFFICE,天天学一点,进步多一点

联系我们