我是靠谱客的博主 潇洒香氛,最近开发中收集的这篇文章主要介绍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语句去更改动态数组。然而当做这个动作时,数组中存在的值会丢失。若要保存数组中原先的值,则可以使用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

最后

以上就是潇洒香氛为你收集整理的Excel-VBA基础(11):VBA中数组基础知识的全部内容,希望文章能够帮你解决Excel-VBA基础(11):VBA中数组基础知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部