|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
为了方便操作,写了一个通用的操作类:
clsArrCom.rar
(4.6 KB, 下载次数: 105)
使用示例:
- Option Explicit
- Sub 示例()
- Dim ArrCom As New clsArrCom, arrData As Variant
-
- '实例化类
- Set ArrCom = New clsArrCom
-
- '(1) 跨表读取数
- '-----读取 "F:/test.xlsx" 中名为 "Test" 的工作表,如果成功,写入Sheet1的A1
- If ArrCom.GetDataByFilePath("F:/test.xlsx", "Test", arrData) Then
- Sheet1.Range("A1").Resize(UBound(arrData), UBound(arrData, 2)) = arrData
- End If
- ' 读取 "F:/test.xlsx" 中的第 2 张表
- ' ArrCom.GetDataByFilePath("F:/test.xlsx", 2, arrData)
- ' 读取 "F:/test.xlsx" 中的第 8 张表 的 C3:L234
- ' ArrCom.GetDataByFilePath("F:/test.xlsx", 8, arrData,"C3:L234")
-
- '(2) 自定义筛选(查询)
- arrData = Sheet1.Range("A1:E32")
- '-----筛选条件:第一列为"A" 或 "C"
- 'arrData = ArrCom.FilterArr(arrData, True, 1, "in", "A,C")
- '-----筛选条件:第一列为包含“A” 且 第2列 大于 1,且 第5列 小于 7
- 'arrData = ArrCom.FilterArr(arrData, True, 1, "LIKE", "A", 2, ">", 1, 5, "<", 7)
- '-----筛选条件:第一列为"A" 或 "C",或者 第 五列 大于等于 6
- 'arrData = ArrCom.FilterArr(arrData, False, 1, "in", "A,C", 5, ">=", 6)
- '-----筛选条件:第二列大于5,且 第四列 等于 "D"
- arrData = ArrCom.FilterArr(arrData, True, 2, ">", 5, 4, "=", "D")
- Sheet1.Range("M1").Resize(UBound(arrData), UBound(arrData, 2)) = arrData
-
- '(3) 自定义排序
- arrData = Sheet1.Range("A1:E32")
- '排序A1:E32,区域,并将结果回填
- '排序条件是 第5列降序、第2列升序
- If ArrCom.Two_Dimensional_ArrSort(arrData, Array(5, 2), Array("DESC", "ASC")) Then
- Sheet1.Range("A1:E32") = arrData
- End If
- '排序A1:E32,区域,并将结果填至H1:L32区域
- '排序条件是 第1、2列升序、第4列降序
- If ArrCom.Two_Dimensional_ArrSort(arrData, Array(1, 2, 4), Array("ASC", "", "DESC")) Then
- Sheet1.Range("H1:L32") = arrData
- End If
-
- End Sub
复制代码
|
评分
-
3
查看全部评分
-
|