第二章 数组
2.5 工作表函数
在用VBA对数组进行操作时,引用合适的Excel工作表函数,会省去许多编程代码,提高运行效率,让你事半功倍。
下面我们就来介绍几个常用的Excel工作表函数在数组上的应用:
1、数组求和
Application.Sum (arr)
2、数组平均值
Application.Average (arr)
3、数组大小值
Application.Max (arr) '数组最大值
Application.Min (arr) '数组最小值
Application.Large (arr, 3) '数组第3最大值
Application.Small (arr, 3) '数组第3最小值
4、数组查询
Match(查找内容, 数组, 查找方式)
返回一个一维数组里要查找的内容所在的位置,查找不到返回空。查找方式一般填为0,查找等于查找内容的第一个数值。
例如:
Application.Match("查找值", brr, 0)
5、数组拆分
Index一个好好的查询函数,却干起了哈士奇的活(笑脸)
Index(数组,行, 列):返回一个一维数组里指定位置的值,或返回一个二维数组里指定行列的值。对二维数组进行操作时,如果省略行,则返回整列,如果省略列,则返回整行。VBA就是利用这个功能,从一个二维数组里任意拆分出一行或一列,形成一个新的数组。
卡片号 | 资产名称 | 建卡 | 原值 | 净值 |
0000793398 | 空调 | 2007-12-31 | 498720.00 | 14961.60 |
0000793400 | 台式电脑 | 2007-12-31 | 35670.00 | 1070.10 |
0001218983 | 音响设备 | 2007-12-31 | 12420.00 | 372.60 |
0001443995 | 音响设备 | 2008-06-11 | 6800.00 | 204.00 |
0001443996 | 音响设备 | 2008-06-11 | 6800.00 | 204.00 |
0001443997 | 音响设备 | 2008-06-11 | 6800.00 | 204.00 |
0003257991 | 台式微机 | 2010-12-29 | 6100.00 | 183.00 |
0003257992 | 台式微机 | 2010-12-29 | 6100.00 | 183.00 |
0003444159 | 电视机 | 2011-07-07 | 15600.00 | 468.00 |
0004715737 | 空调 | 2012-09-11 | 5700.00 | 171.00 |
0004715738 | 空调 | 2012-09-11 | 5700.00 | 171.00 |
0004966154 | 监控设备 | 2012-12-05 | 8000.00 | 240.00 |
0004966420 | 金库门 | 2012-12-05 | 76000.00 | 2280.00 |
0005925757 | 笔记本式微机 | 2012-12-30 | 5700.00 | 171.00 |
0006065400 | 监控设备 | 2012-12-30 | 24250.00 | 727.50 |
Sub 数组工作表函数()
arr = Range("a1").CurrentRegion
brr = Application.Index(arr, , 1)
'返回arr数组的第1列,形成一个二维数组
brr = Application.Transpose(brr)
'转换后得到一个一维数组
crr = Application.Index(arr, 2)
'返回arr数组的第2行,形成一个一维数组
End Sub
Excel还有许多函数可以应用于数组,大家可以自己动手试一下,这里就不再一一举例了。
往期精彩回顾:
学习VBA,报表做到飞 第二章 数组 2.3 Split与Join
学习VBA,报表做到飞 第二章 数组 2.2 数组的上界与下界
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!