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阵列使用的更多相关内容,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

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