龙空技术网

VBA学习笔记:数组相关函数

简单学学EXCEL 367

前言:

而今大家对“vba数组作为参数传入函数”可能比较注意,姐妹们都需要了解一些“vba数组作为参数传入函数”的相关内容。那么小编同时在网络上收集了一些对于“vba数组作为参数传入函数””的相关资讯,希望兄弟们能喜欢,咱们快快来学习一下吧!

介绍几个VBA中处理数组数据常用的函数:

1、TRANSPOSE 转置的作用,语法:worksheetfunction.Transpose(数组);通常也写成application.Transpose;不嫌麻烦的话也可写成application.worksheetfunction.transpose(因为transpose是工作表函数,VBA内本身只是调用,所以函数之前加前缀。所有工作表函数都可用worksheetfunction.函数 进行调用)。作用同工作表里的转置功能,行转成列,列转成行。一维数组输出到工作表显示为一行数据,转置后变为一列数据。二维数组转置后则是行列互换了。举 2个特例:1、一维数组里嵌套一维数组,两次Transpose后变为二维数组。2、单行数据直接赋值给数组,两次Transpose后变为一维数组。如图:arr 与brr 的标号差别。

2、INDEX,也是工作表中函数,也是调用关系。语法:application.index(数组,行序号,列序号) ;与在工作表中参数一样。注:index 取数组的值与数组的上标起值是0,还是10无关,index取数组第1个值,参数是1,第2个值,参数就是2。

示例:INDEX取数组1行或1列的数据时,参数为0;取数组的第2行数据,语句:Application.index(arr,2,0),取数组第2行的数据,示例:

3、Filter 从数组中筛选出与“关键字”匹配的数据,Filter是VBA内函数,使用时不需要前缀。brr = filter (arr, ”王” ), Filter 只能对一维数组进行筛选,并且Filter只能模糊匹配,不能精确匹配,多个匹配会返回多个值;但不能返回数据在数组的位置信息,于是不能进行定点定位操作。示例图如下:最开始的arr不是一维数组,Filter报错。Filter内的参数 ”王” 也可用单元格的值 Filter (arr, cells(x,y) )

4、SUM 工作表求和函数。

图例语句释义:INDEX(arr,0,1) 取数组第1列数据,SUM求和,t就等于第1列的数值之和。

5、COUNT 语法:COUNT统计数组中数字的个数,工作表函数,语法:worksheetfunction.count(arr)。

顺便提一下COUNTA函数, 在工作表是统计非“空”的个数,对数组也可使用,但是却变成了统计个数。看图中 t2的值。

6、MAX,MIN 语法:worksheetfunction.max(arr);worksheetfunction.min(arr),得到数组的最大值、最小值。

标签: #vba数组作为参数传入函数 #子数组最大值是最小值k倍的数量 #计算数组元素个数的函数 #vba 函数返回数组的怎么调用 #vba函数返回数组却不输出