分享
 
 
 

VBA静态变量与常量

王朝vb·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接的作用。变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。

声明变量的关键词是Dim,其语法是

Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .

Dim 语句的语法包含下面部分:

部分 描述

WithEvents 可选的。关键字,说明 varname 是一个用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以声明任意个所需的单变量,但不能使用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。

varname 必需的。变量的名称;遵循标准的变量命名约定。

subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法:

[lower To] upper [, [lower To] upper] . . .

如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有使用 Option Base 语句,则下界为 0。

New 可选的。可隐式地创建对象的关键字。如果使用 New 来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用 Set 语句来给该对象引用赋值。New 关键字不能声明任何内部数据类型的变量,以及从属对象的实例,也不能与 WithEvents 一起使用。

type 可选的。变量的数据类型;可以是 Byte、 Boolean 、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length (对定长的字符串)、Object、Variant、用户定义类型、或对象类型。所声明的每个变量都要一个单独的 As type 子句。

而在声明变量或创建变量的同时,最好先考虑好变量用什么数据类型,下面 表格显示所支持的数据类型,以及存储空间大小与范围。

数据类型 存储空间大小 范围

Byte 1 个字节 0 到 255

Boolean 2 个字节 True 或 False

Integer 2 个字节 -32,768 到 32,767

Long

(长整型) 4 个字节 -2,147,483,648 到 2,147,483,647

Single

(单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38

Double

(双精度浮点型) 8 个字节 负数时从 -1.79769313486231E308 到

-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308

Currency

(变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807

Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001

Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日

Object 4 个字节 任何 Object 引用

String

(变长) 10 字节加字符串长度 0 到大约 20 亿

String

(定长) 字符串长度 1 到大约 65,400

Variant

(数字) 16 个字节 任何数字值,最大可达 Double 的范围

Variant

(字符) 22 个字节加字符串长度 与变长 String 有相同的范围

用户自定义

(利用 Type) 所有元素所需数目 每个元素的范围与它本身的数据类型的范围相同。

其中的Variant是个很特殊的数据类型,它能表示除固定长度之外的所有值,并可以通过VarType来返回其数据子类型。其语法如下:

VarType(varname)

必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。

下面这个表表示VarType返回的值的意义:

常数 值 描述

vbEmpty 0 Empty(未初始化)

vbNull 1 Null(无有效数据)

vbInteger 2 整数

vbLong 3 长整数

vbSingle 4 单精度浮点数

vbDouble 5 双精度浮点数

vbCurrency 6 货币值

vbDate 7 日期

vbString 8 字符串

vbObject 9 对象

vbError 10 错误值

vbBoolean 11 Boolean 值

vbVariant 12 Variant(只与变体中的数组一起使用)

vbDataObject 13 数据访问对象

vbDecimal 14 十进制值

vbByte 17 位值

vbUserDefinedType 36 包含用户定义类型的变量

vbArray 8192 数组

变量因声明的位置与使用Public或Private关键字,其有效范围可能为3种:过程范围、模块范围与全局范围。当变量放在模块头部,并使用Public代替Dim时,这个变量就是全局变量;而如果是用Dim或者用Private代替Dim时,这个变量是模块级变量;而当变量在过程中声明就是过程变量了。

通常的过程变量在过程结束后值是不保存,但如果子程序使用Static语句,或者用Static声明的过程变量是例外的,下面用两个实例说明一下。

Static Sub ExcelbaSub2()

Dim X As Integer

MsgBox "X = " & X

X = X + 1

End Sub

Sub ExcelbaSub3()

Static Y As Integer

MsgBox "Y = " & Y

Y = Y + 1

End Sub

运行上面的过程,你就比较容易理解Static的用途了。

除了变量,我们还经常用到一些常量,包含系统定义与自定义的常量。常量与变量有很多相似之处,但常量的值是保持不变的,如果代码中常常出现一个数值,最好的方法就是定义成常量,这样既使代码易于编写,也让代码容易阅读。定义常量的关键词是Const,其语法是:

语法

[Public | Private] Const constname [As type] = expression

其中的expression就是常量的值,其它与变量相同,就不重复了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有