优秀的编程知识分享平台

网站首页 > 技术文章 正文

VBA学习笔记:数组相关函数(vba function 数组)

nanyue 2024-09-15 23:22:26 技术文章 3 ℃

介绍几个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),得到数组的最大值、最小值。

Tags:

最近发表
标签列表