VBA语言第六课《数组》
三四五
数组是计算机能快速读取的语言集合,能快速提取单元格区域数据或者将数据赋值到单元格区域。数组虽然也是有行有列,但是它的元素单一,只是单纯的数值,不像单元格包含有格式、颜、公式等很多信息,所以利用数组能大幅减少每次运算去读取工作簿→工作表→单元格所需的时间。一、数组从单元格区域提取数据与赋值
vba 字符串转数组
上图是提取数据,赋值的话则相反,如:.Range("E6:G9")= arr
二、数组的行列数运算
Sub t2()
Dim arr(-19 To 8,2 To 5)
MsgBox UBound(arr,1)'返回第1维(行的)最大编号,结果为8
MsgBox LBound(arr,1)'返回第1维(行的)最小编号,结果为-19
MsgBox UBound(arr,2)'返回第2维(列的)最大编号,结果为5
MsgBox LBound(arr,2)'返回第2维(列的)最小编号,结果为2
End Sub
三、一维数组的行列数运算
⑴数组的合并和字符串拆分(Join & Split)
Sub test1()
Dim arr,X As String
X="A-REW-E-RWC-2-RWC"
arr=Split(X,"-")'按-分隔成一组数装入数组中
MsgBox arr(0)
'显示数组的第一个数(一维数组最小下标为0,不是1),显示结果为A
MsgBox Join(arr,"-")
'再用","把数组的每个值连接成一个字符串,结果为"A-REW-E-RWC-2-RWC"
End  Sub⑵
⑵ Filter(数组,筛选的字符,是否包含)
Sub test2()
arr=Array("ABC","A","D","CA","ER")
arr1=VBA.Filter(arr,"A",True)
'筛选所有含A的数值组成一个新数组
arr2=VBA.Filter(arr,"A",False)
'筛选所有不含A的数值组成一个新数组
MsgBox Join(arr2,",")'查看筛选的结果
End  Sub
⑶工作表函数运用
Sub test4()
arr=Array(1,35,4,13)
MsgBox Application.Max(arr)'最大值
MsgBox Application.Min(arr)'最小值
MsgBox Application.Large(arr,2)'第2大值
MsgBox Application.Small(arr,2)'第2小值
MsgBox Application.Match(4,arr,0)
'查询数值4在数组Arr中的位置
End Sub
⑷单元格数据与一维数组的互换

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。