vba数组用法案例详解图片,vba数组通俗讲解,VBA数组用法案例详解

vba数组用法案例详解图片,vba数组通俗讲解,VBA数组用法案例详解

本文主要介绍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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: