VBA静态变量与常量

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 到 255Boolean 2 个字节 True 或 FalseInteger 2 个字节 -32,768 到 32,767Long(长整型) 4 个字节 -2,147,483,648 到 2,147,483,647Single(单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38Double(双精度浮点型) 8 个字节 负数时从 -1.79769313486231E308 到-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308Currency(变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日Object 4 个字节 任何 Object 引用String(变长) 10 字节加字符串长度 0 到大约 20 亿String(定长) 字符串长度 1 到大约 65,400Variant(数字) 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 IntegerMsgBox "X = " & XX = X + 1End SubSub ExcelbaSub3()Static Y As IntegerMsgBox "Y = " & YY = Y + 1End Sub运行上面的过程,你就比较容易理解Static的用途了。除了变量,我们还经常用到一些常量,包含系统定义与自定义的常量。常量与变量有很多相似之处,但常量的值是保持不变的,如果代码中常常出现一个数值,最好的方法就是定义成常量,这样既使代码易于编写,也让代码容易阅读。定义常量的关键词是Const,其语法是:语法[Public | Private] Const constname [As type] = expression其中的expression就是常量的值,其它与变量相同,就不重复了。爬上那座山,听最圣洁的经。

VBA静态变量与常量

相关文章:

你感兴趣的文章:

标签云: