编程语言应用

首页 » 常识 » 诊断 » ExcelVBA如何定义数组,这里有最全
TUhjnbcbe - 2025/5/29 20:49:00
白癜风诊疗康复 http://www.bdfyy999.com/m/

No.1

VBA中的数组定义和赋值,是编程进阶的一个标志。

无论什么编程语文,数组的应用是一个十分重要的项目。

如何玩到熟练,就各有各的玩法。

但是基础的东西,一定要掌握牢固。

这样才在应用的过程中,不会迷茫。

No.2

首先看一下上面的图片,是为对数组定义的一个集合。

Dim+数组名

定义数组用Dim关键字,后面的一些参数,没有也可以,表示任意大小或任意类型的数组。

DimArr(0to10)

这样就定义了一个由最小下标为0,最大下标为10的一维数组,也就是Arr数组里面包含了从0~10的11个变量。

可以给每一个变量赋值,如:

Arr(0)=1

Arr(10)=10

显然Arr(0)的值为“1”字符类型值。Arr(10)的值是数字类型,整形或长整形。可以用typename()测试一下。

统一给数组赋值可以用函数Array()进行。

Arr=Array(1,2,3)

值与值之间用,逗号间隔。

数组图1

No.3

通常定义了一个固定长度的数组并不完全符合我们的要求,如果想再增加一个数组值,怎么办呢?

用下面的语句:

ReDimArr(0to20)

ReDim是重新定义数组的意思,就是说把数组Arr重新定义成最小下标为0,最大下标为20的数组。

注意:这样定义之后的数组,都将会清空,以前保存到数组里的内容将没有了。

如果我们不想把数组内容清空怎么办?

用下面的定义方式:

ReDimPreserveArr(0to20)

这个定义将不改变原有数组的内容,而改变数组长度。

是不是比较简单,复杂的工数组在二维,以及三维或多维。

定义方法同理,如:

DimArr(0to3,0to5)

DimArr(0to3,0to5,0to10)

比较复杂的多维数组应用就不介绍了,使用起来费大脑。

No.4

上图为本例代码,分别创建了三个数组进行举例说明:

PrivateSubCommandButton1_Click()DimrAsRange,sAsWorksheetSets=ThisWorkbook.ActiveSheetSetr=s.Range(C2)DimNewArr,roAsLong,iAsLongro=7ReDimNewArr(1Toro)Fori=1ToroNewArr(i)=r.Offset(i,0)Nextis.OLEObjects(TextBox1).Object.Value=数组名:NewArrVBA.vbCrLf数组值:VBA.Join(NewArr)EndSub

循环方式给一维数组赋值,值为“数组图1”表格内容,可以对应查看。

下面代码是将数组定义和重复定义的一些方法统一到一起的例子:

PrivateSubCommandButton3_Click()DimrAsRange,sAsWorksheetSets=ThisWorkbook.ActiveSheetSetr=s.Range(C2)DimNewArr2,lAsLongl=6ReDimNewArr2(l)NewArr2=Array(一月,二月,三月,四月,五月,六月)数组赋值l=12ReDimPreserveNewArr2(l)重定义数组长度,不改变数组内容NewArr2(6)=七月NewArr2(7)=八月NewArr2(8)=九月NewArr2(9)=十月NewArr2(10)=十一月NewArr2(11)=十二月s.OLEObjects(TextBox1).Object.Value=数组名:NewArr2VBA.vbCrLf数组值:VBA.Join(NewArr2)EndSub

No.5

数组应用是一个逐渐学习的过程,不会一下子学会。

除非你特别聪明,大脑运行特别快。

一维数组很好理解,相当于一个名字雷同的一些变量组合。

多维数组就相对难了,如果学过矩阵,也好理解,如果会下围棋二维数组也不太困难。

如果你对空间感知能力十分强大,数组对你一定是个小儿科!

总之,数组应用为什么这么普遍,因为其有不可替代的作用。

执行效率高是一点,然后还是效率高,通用性能强大。

总之,要学会。

之后还有一些,表格转换数组的一些应用要介绍。

欢迎

1
查看完整版本: ExcelVBA如何定义数组,这里有最全