多语言展示
当前在线:691今日阅读:57今日分享:41

VBA 数组辨析

在学习VBA的过程中,我们通常会使用到数组,对于新手,在了解了数组的定义后,对于如何使用经常产生困惑。本篇经验,从数组使用的角度出发,对数组进行分析。
工具/原料
1

WPS/EXCEL

2

VBA

方法/步骤
1

1、数组分类

2

2、数组表示:(1)声明数组变量         option base 0 or1—在模块级别中使用,用来声明数组下标的缺省下界,即最小索引号,可以为0和1(0值时可以省略声明)         Dim 声明变量类型,并根据数据类型为变量分配内存空间(2)Dim的数组形态及其数据类型、赋值方式:    a.一般数组         Dim arr1(4) as integer,等同于Dim arr2 (0 to 4) as integer         Dim arr2 (0 to 4) as integer         Dim arr3(1 to 4) as integer,若事先有 option base 1的声明,则Dim arr1(4) as integer等同于 Dim arr3(1 to 4) as integer;    b.动态数组         Dim arr4( ) as integer,声明动态数组的数据类型         Dim arr5( ) as  Variant,声明动态数组的数据类型是变体型         Dim arr6( ), 数据类型未被显式声明(例如 Dim、Private、Public 或 Static等语句【变量类型】)为其他数据类型,默认为变体型         Dim arr7,数据类型未被显式声明(例如 Dim、Private、Public 或 Static等语句【变量类型】)为其他数据类型,默认为变体型

3

3、数组赋值  (1)一般数组           逐个赋值           array赋值,数组的数据类型为Variant。语法:           arr1=array(1,2,3,4,5) — 一维数组           slipt赋值,数组的数据类型为Variant。语法:           arr2=slipt('邓肯,林肯,华盛顿,布什,普京',',') — 一维数组,以0为下标。           range赋值,将单元格区域的值直接赋给数组,数组的数据类型为Variant。语法:           arr3=range('a1:d2') — 二维数组

4

4、索引号(上下标)  (1)采用option base 1的声明,下标值即最小索引号为1,否则,默认索引号为0,例如:          a.  Dim arr1(4) as integer,默认最小索引号及下标值为0          b.  Dim arr1(1 to 4) as integer,最小索引号及下标值为1          c.  Option base 1               Dim arr1(4) as integer,最小索引号及下标值为1  (2)在Dim声明中,若规定了下标值的情况下,最小索引号即为规定的下标值;动态数组的下标值和赋值给它的数组是一致的,例如:            Sub shuzu()            Dim arr1()                arr1 = Range('A1:C2')                MsgBox UBound(arr1, 1)                MsgBox LBound(arr1, 1)            End Sub            UBound(arr1, 1)的值为 2            LBound(arr1, 1)的值为 1            UBound(arr1, 2)的值为 3            LBound(arr1, 2)的值为 1     (3)关于索引号的确定:不确定的情况下可以用Msgbox  UBound(arr1, 1)类似方法进行检验。     (4)数组包含的元数个数:              X = UBound(arr1, 1) - LBound(arr1, 1) + 1

注意事项

注意区分变量类型和数据类型。

推荐信息