本文主要介绍VBA阵列使用案例的详细说明。本文通过一个简单的案例,说明了对这项技术的理解和使用。以下是详细内容。有需要的朋友可以参考一下。
目录
前言具体操作1、VBA数组定义方法2、数组赋值与计算3、数组连接与拆分)4、数组过滤)5、数组维度转换6、自定义函数以数组获取所有工作表名称7、数组赋值提高计算效率总结
前言
VBA在Excel的开发和应用中起到了明显的作用。用好数组可以提高工作效率。让我们开始揭开VBA阵列的神秘面纱。
具体操作
1、VBA数组的定义方法
下面是几种常用的数组定义:一维数组的定义和二维数组的定义。
直接赋值定义,调用数组函数定义,调用Excel工作表内存数组
''''''''被直接定义为给数组赋值。
一维常数数组的定义
子数组1()
Dim arr(2)作为变量数组
arr(0)='vba '
arr(1)=100
arr(2)=3.14
MsgBox arr(0)
末端接头
二维常数数组的定义
子arrDemo2()
Dim arr(1,1)作为变量' Dim arr(0到1,0到1)作为变量
arr(0,0)='apple '
arr(0,1)='banana '
arr(1,0)='pear '
arr(1,1)='grape '
对于i=0到1
对于j=0到1
MsgBox arr(i,j)
然后
然后
末端接头
'''''''''用数组函数创建一个常量数组
一维数组
子数组元素3()
Dim arr作为变量数组
arr=Array('vba ',100,3.14)
MsgBox arr(0)
末端接头
二维数组
子数组元素4()
Dim arr作为变量数组
Arr=Array(Array('张三',100),Array('李四',76),Array('王五',80))
MsgBox arr(1)(1)
末端接头
调用Excel工作表内存数组
一维数组[{'A ',1,' C'}]
二维数组[{'a ',10;b ',20;c ',30}]
子mylook()
暗淡排列
arr=[{'a ',10;b ',20;c ',30}]
范围(' a1:b3')=数组
msbox application . worksheet function . vlookup(' b ',arr,2,0)'可以作为调用vlookup时的第二个参数。
末端接头
动态数组的定义方法
Sub arrDemo5()
Dim arr1()'声明了一个动态数组(动态是指不固定的大小)
“Dim arr2”声明了Variant类型的变量
Arr1=Range('a1:b2 ')'将单元格区域a1:b2的值加载到数组Arr1中。
Arr2=Range('a1:b2 ')'将单元格区域a1:b2的值加载到数组Arr2中。
MSOXarr1 (1,1)'读取arr数组中第一行和第一列的值。
MSOX ARR2 (2,2)'读取arr1数组的第二行第二列中的值。
末端接头
2、数组的赋值和计算
将单元格数据读入数组,进行计算,然后将其分配给单元格。
子arr_calculate()
“Dim arr”声明一个变量来保存单元格数据。
维度i%
Arr=Range('a2:d5 ')'将单元格数据移动到Arr中,ARR有4列4行。
对于arr数组中的i=1到4 '循环,通过循环。
Arr(i,4)=arr(i,3) * arr(i,2)'数组的第4列(金额)=第3列*例2
接下来我
Range('a2:d5')=arr '将数组放回单元格中
末端接头
3、数组的合并(join)与拆分(split)
数组连接和拆分。
Sub join_demo()
将a作为变体变暗
Dim b作为变体
使用空格连接
a=数组(“红色”、“蓝色”、“黄色”)
b=Join(a,'')
MsgBox(' b的值为:' b ')红色蓝黄色
使用$加入
b=Join(a,' $') 'Red$Bule$Yellow
MsgBox('使用分隔符后的联接结果是:' b ')
末端接头
Sub split_demo()
将a作为变体变暗
Dim b作为变体
a=Split('Red$Blue$Yellow ',' $') 'a=Array('red ',' Blue ',' Yellow ')
b=未绑定(a)
对于i=0至b
MsgBox a(i)
然后
末端接头
4、数组的筛选(Filter)
vba数组的过滤
子arr_filter()
arr=Array('ABC ',' F ',' D ',' CA ',' ER ')
Arr1=VBA。Filter(arr,' A ',True)'用A筛选所有值以形成一个新数组。
Arr2=VBAFilter(arr,' A ',False)'过滤所有不带A的值,形成一个新数组。
Gboxjoin (arr1,',')'查看过滤的结果。
末端接头
5、数组维度的转换(Transpose)
数组维数的变换
一维到二维
Sub arr_tranpose1()
arr=Array(10,' vba ',2,' b ',3)
arr1=应用。转置
MSOXARR1 (2,1)'转换后的数组是一个具有一列多行的二维数组。
末端接头
'二维数组转一维'注意:只有一列n行的数组才能直接转置成一维数组。
Sub arr_tranpose2()
arr2=范围(' A1:B5 ')
Arr3=应用。转置(应用。index (arr2,2))'获取arr2的第2列中的数据,并将其转置到一维数组中。
MsgBox arr3(4)
末端接头
用“-”将单元格内容连接起来
Sub join_transpose_demo()
arr=Range('A1:C1 ')
arr1=范围(' A1:A5 ')
MsgBox Join(应用程序。转置(应用。转置(arr)),'-')
MsgBox Join(应用程序。转置(arr1),'-')
末端接头
6、利用数组获取所有工作表名称的自定义函数
使用数组获取所有工作表名称的自定义函数。
函数getSheetsname(id)
Dim i%,arr()
k=张。数数
ReDim arr(1到k)
对于i=1至k
arr(i)=Sheets(i)。名字
然后
getSheetsname=Application。索引(数组,id)
结束功能
7、数组赋值,提高计算效率
数组赋值,提高计算效率。
2.03秒
子数据输入()
以双精度模糊开始
开始=定时器
Dim i
对于i=1到30000
单元格(I,1)=i
然后
MsgBox '程序的运行时间是'格式(定时器启动,' 0.00 ')'秒'
末端接头
0.12秒
Sub dataInputArr()
以双精度模糊开始
开始=定时器
Dim i,arr(1到30000)作为字符串
对于i=1到30000
arr(i)=i
然后
范围(' a1:a30000 ')。价值=应用。转置
MsgBox '程序的运行时间是'格式(定时器启动,' 0.00 ')'秒'
末端接头
0.09秒
Sub dataInputArr2()
以双精度模糊开始
开始=定时器
Dim i,arr(1到30000,1到1)作为字符串
对于i=1到30000
arr(i,1)=i
然后
范围(' a1:a30000 ')。值=数组
MsgBox '程序的运行时间是'格式(定时器启动,' 0.00 ')'秒'
末端接头
总结
VBA仍然很强大。通过读取单元格区域的数据,赋给数组,然后使用数组函数或者调用Excel的内置函数进行相关处理。另外,array在赋值计算方面的效率也很高,可以自己尝试一下。
这就是本文对VBA阵列使用案例的详细解释。有关VBA阵列使用的更多相关内容,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。