您的位置 首页 > 娱乐休闲

Excel VBA之数组的知识大总结,帮你理清条理

=============================================================

====================

|| 版本号:Excel2013. ||

====================

VBA中的数组是什么样的呢?本篇详细介绍一下。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

声明数组

一般来说声明数组的语法为:Public|Dim 数组名 (a to b) As 数据类型

注意:(1)Public和Dim只能选一个,为不同的作用域。

(2)a为数组元素的起始索引号,b为终止索引号。

例如:Dim attr (1 to 20) As String

也可以这样子声明,如下:

Dim attr(20) As String

注意:此时则索引号是从0开始,终止号为20

声明动态数组

声明动态数组很简单,只要不指定大小即可,然后在后面可以使用ReDim再来指定大小。如下:

Dim attr() As String n = 20 ReDim attr(20) As String

注:已经定义好大小的数组,也可以使用ReDim来重新指定它的大小。

声明多维数组

例如:

Dim attr(1 to 3,1 to 10) As String

或者如下:

Dim attr(3,10) As String

此时索引号默认为0,除非在模块第一句代码加上”OPTion Base 1"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

给数组赋值

使用括号来给数组的每个元素赋值,例如:attr(20)="你好"

则是将attr中索引号为20的元素赋值

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

其他创建数组的方式

还可以使用其他方式来更加灵活的创建数组

使用Array函数创建数组

如下:

Dim attr As Variant attr = Array(1,2,3,4,5)

注:(1)使用Array创建数组,定义变量时必须为Variant类型。

(2)索引号默认从0开始,除非已经在模块的第一句中写入了代码”OPTion Base 1"

使用Split函数创建数组

如下:

Dim attr As Variant attr = Split("高女士,王先生,付同学",",")

注:(1)变量类型必须为Variant。

(2)无论是否在模块中写入代码“OPTion Base 1",利用Split得到的数组索引号都从

0开始。

利用Range对象直接创建数组

如下:

Dim attr As Variant attr = Range("A1:C3").Value

注:定义类型必须为Variant

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

UBound函数和LBound函数

UBound函数用于计算数组的最大索引号:UBound(attr)

LBound函数用于计算数组的最小索引号:LBound(attr)

当然对于多维数组要选择相应的维数来计算:UBound(attr,2)

那么数组中元素的个数为:UBound(attr)-LBound(attr)+1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Join函数

Join函数就是将一个一维数组中的按照指定的分隔符连接成一个字符串,如下:

Dim attr As Variant,txt As String attr = Array(1,2,3,4) txt = Join(attr,"@")

那么txt就为“1@2@3@4"

注:Join函数中分隔符可以省略,此时默认使用空格进行分割。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

将数组里的元素批量写入单元格区域

如下:

Dim arr As Variant arr = Array(1,2,3,4) Range("A1:A4").Value = A(arr)

注:(1)将一个数组整个写入单元格区域,要注意大小一致。

(2)如果写入的是垂直的方向,则需要借助Transpose进行转换一下!

再举一个正常点的例子吧,如下:

Dim arr(1 To 2,1 To 3) As String arr(1,1)="1" arr(1,2)="2" arr(1,3)="3" arr(2,1)="4" arr(2,2)="5" arr(2,3)="6" Range("A1:C3").Value=arr

=============================================================

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“Excel,VBA之数组的知识大总结,帮你理清条理”边界阅读