深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

vba中的两种数据声明方式


2016年8月9日 作者: 来源:

    数组的声明方式和其他的变量是一样的,它可以使用 Dim、 Static、Private 或 Public 语句来声明。标量变量(非数组)与数组变量的不同在于通常必须指定数组的大小。若数组的大小被指定的话,则它是个固定大小数组。若程序运行时数组的大小可以被改变,则它是个动态数组。
    数组是否从 0 或 1 索引是根据 Option Base 语句的设置。如果 Option Base 没有指定为1,则数组索引从0 开始。
    1.声明固定大小的数组
    下面这行代码声明了一个固定大小的数组,它是个 11 行乘以 11 列的Integer 数组:
    Dim MyArray(10, 10) As Integer
    第一个参数代表的是行;而第二个参数代表的是列。
    与其他变量的声明一样,除非指定一个数据类型给数组,否则声明数组中元素的数据类型为 Variant。数组中每个数组的数字型 Variant 元素占用 16 个字节。每个字符串型 Variant 元素占用 22 个字节。为了尽可能使写的代码简洁明了,则要明确声明的数组为某一种数据类型而非 Variant。下面的这几行代码比较了几个不同数组的大小:
    ' 整型数组使用 22 个字节(11 元素* 2 字节)。
    ReDim MyIntegerArray(10) As Integer
    ' 双精度数组使用 88 个字节(11 元素 * 8 字节)。
    ReDim MyDoubleArray(10) As Double
    ' 变体型数组至少使用 176 字节(11 元素 * 16 字节)。
    ReDim MyVariantArray(10)
    ' 整型数组使用 100 * 100 * 2 字节(20,000 字节)。
    ReDim MyIntegerArray (99, 99) As Integer
    ' 双精度数组使用 100 * 100 * 8 字节(80,000 字节)。
    ReDim MyDoubleArray (99, 99) As Double
    ' 变体型数组至少使用 160,000 字节(100 * 100 * 16 字节)。
    ReDim MyVariantArray(99, 99)
    数组变量的最大值,是以所用的操作系统有多少可用内存为基础。若使用的数组大小超过了系统中可用内存总数的话,则速度会变慢,因为必须从磁盘中读写回数据。
    2.声明动态数组
    若声明为动态数组,则可以在执行代码时改变数组大小。可以利用 Static、Dim、Private 或 Public 语句来声明数组,并使括号内为空,如下示例所示。
    Dim sngArray() As Single
注意:
    可以在过程中使用 ReDim 语句来做隐含性的数组声明。当使用 ReDim 语句时要小心点,不要拼错数组的名称。否则即使在模块中有包含 Option Explicit 语句,仍然会因此而生成第二个数组。
    对于过程中的数组范围,可以使用 ReDim 语句去改变它的维数,去定义元素的数目以及每个维数的底层绑定。每当需要时,可以使用 ReDim 语句去更改动态数组。然而当做这个动作时,数组中存在的值会丢失。若要保存数组中原先的值,则可以使用 ReDim Preserve 语句来扩充数组。例如,下列的语句将 varArray 数组扩充了10 个元素,而原本数组中的当前值并没有消失掉。
    ReDim Preserve varArray(UBound(varArray) + 10)
注意:
    当对动态数组使用 Preserve 关键字时,只可以改变最后维数的上层绑定,而不能改变维数的数目。


阅读:1839 上一则:vba的function过程 下一则:vba是如何声明变量的

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训