Excel VBA变量和常量

时间:2023-02-18 15:48:34 

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

一个示例

下面是一个简单的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所示。

Excel VBA变量和常量

图1

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

命名变量

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

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

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

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

变量名不区分大小写。

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

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

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

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

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

不能在变量名中使用运算符(+、-、*、/、

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

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

变量的数据类型

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

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

例如,上面示例中的:

Dim r As Integer

Dim area As Double

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

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

声明变量

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

Excel VBA变量和常量

图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”开头。

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程
0
投稿

猜你喜欢

  • Excel的info函数

    2023-03-28 21:58:23
  • 如何将Excel中的全部或部分表格生成图片

    2023-06-27 01:17:28
  • Word中设置边框和底纹的操作方法

    2023-04-25 06:58:44
  • excel表格如何使用IMCOS函数

    2023-06-21 20:34:37
  • Win7本地连接禁用了怎么办?

    2022-11-24 22:54:28
  • 想升级Win11系统主板要怎么开启TPM2.0?

    2023-01-20 01:11:10
  • 电脑使用水星无线网卡配置AP时提示“配置ICS失败”怎么办

    2023-02-12 09:47:39
  • wps教程如何设置页面大小和方向

    2022-09-13 01:49:52
  • PDF文档怎么转换为CAD图纸?将PDF图导入到CAD中的方法

    2022-07-10 22:49:50
  • Win10哪些服务是必须禁用的?

    2022-04-14 21:31:26
  • WPS中删除线轻易加

    2022-03-24 08:52:10
  • Win10系统电脑连接电视如何去操作?Win10系统电脑连接电视操作步骤

    2023-01-02 11:58:50
  • 只加一个动画,死板PPT立马活过来!

    2022-02-04 15:17:52
  • win10右键任务栏图标无反应

    2023-11-24 17:12:40
  • WPS页脚插入页码为什么多一横杠

    2023-11-30 14:11:52
  • iOS 13描述文件怎么下载?如何安装iOS 13测试版?

    2023-10-27 10:59:14
  • Win7系统设置家庭组提示此计算机无法连接到家庭组的解决方法图文教程

    2023-12-19 07:29:26
  • Mac下如何启动搜狗输入法以及切换输入中英文

    2022-06-07 10:24:17
  • win10系统提示werfault.exe应用程序错误的解决方法图文教程

    2023-06-06 02:46:38
  • Win10系统WiFi共享精灵连上了不能上网如何解决?

    2023-11-25 14:22:45
  • asp之家 电脑教程 m.aspxhome.com