excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel-VBA基础(11):VBA中数组基础知识

01 数组的声明

数组是VBA的变量,具有一群相同类型的成员,可以利用数组名和索引值进行访问。数组的声明与一般变量的声明一样,可以用Dim、Static、Private或Public语句来声明,在数组名后使用括号“()”,在括号中放置整数,定义数组包含的项目数。例如:

Sub Sample23()

Dim sArray(3) As String '定义数组sArray具有4个项目

sArray(0) = "黄蓉蓉"

sArray(1) = "女"

sArray(2) = "北京市朝阳区"

sArray(3) = "大学本科"

End Sub

数组中项目数的多少是以操作系统有多少可用内存为基础,若使用的数组大小超过了系统中可用内存总数,则速度会变慢,因为必须从磁盘中读写数据。

02 数组的基底

默认情况下数组的基底是0,即数组的最小索引的项目从0开始,例如sArray(3)代表sArray数组有4个项目,若是希望数组的基底是1,则可以在程序的开始(过程之外)用以下代码声明:

Option Base 1

这时程序语句“sArray(0) = "黄蓉蓉"”就是非法的,运行时会提示下标越界。

03 具有多重维度的数组

在VBA中最多可以声明60维的数组,但实际应用中很少用到超过3维的数组。例如,下列的语句声明一个5乘10的2维数组。

Dim sngArray1(1 To 5, 1 To 10) As Single

如果数组成矩阵,则第一个参数代表行,而第二个参数代表列,例如:

Dim sngArray1(4, 9) As Single

可以代表4行9列的矩阵。

04 固定大小数组

若数组中括号内的整数大小被指定,则它是个固定大小数组。

例如声明2维,行和列都是10个项目的数组,就是个固定大小数组:

Dim sArray1(9, 9) As String

05 动态数组

若程序运行时数组的大小可以被改变,则它是个动态数组。

可以利用Static、Dim、Private或Public语句来声明数组,并使括号内为空。

在的值会丢失。若要保存数组中原先的值,则可以使用ReDim Preserve语句来扩充数组。例如,下列的语句将varArray数组扩充了6个项目,而原本数组中的项目数值并没有被冲消。

ReDim sArray(UBound(sArray) + 6) As String

当对动态数组使用Preserve关键字时,只可以扩大最后维数的项目数量,而不能改变维数的数目。完整示例如下:

Sub Sample232()

Dim sArray() As String '定义动态数组

ReDim sArray(3) As String '第一次定义动态数组的项目数

sArray(1) = "女"

sArray(2) = "北京市朝阳区"

sArray(3) = "大学本科"

'第二次定义动态数组的项目数,保留数组中原有项目的数值

ReDim Preserve sArray(UBound(sArray) + 1) As String

MsgBox sArray(1)

'第三次定义动态数组的项目数,保留数组中原有项目的数值

ReDim sArray(UBound(sArray) + 6) As String

MsgBox sArray(1)

End Sub

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接