|
本人工作有需求使用Excel来处理大量数据,数据量大小情况如下: | 原始数据 表单 | 数据处理 表单 | 行数 | 3~5万 | 100~10000 | 列数 | 50~100 | 15~25 |
需要进行大量Vlookup操作,所以自己做了一个基于数组+字典的查询函数 Ylookup
- 'Ylookup查询函数
- Public Function Ylookup(LookupValue() As Variant, TableArray() As Variant, ColIndexNum() As Integer, Optional x As Integer) As Variant
- Dim u_LookupValue_1, u_ColIndexNum_1, u_TableArray_1, u_TableArray_2 As Long '列数和行数
- u_LookupValue_1 = UBound(LookupValue, 1)
- u_ColIndexNum_1 = UBound(ColIndexNum, 1)
- u_TableArray_1 = UBound(TableArray, 1)
- u_TableArray_2 = UBound(TableArray, 2)
-
- '创建字典查询 Dic
- Set Dic = CreateObject("Scripting.Dictionary")
- ReDim YLookupValue(1 To u_ColIndexNum_1, 1 To u_LookupValue_1)
- For j = 1 To u_ColIndexNum_1 Step 1 '获取ColIndexNum(i)的列号
- For i = 1 To u_TableArray_1 Step 1 '1 -> Sheets("LTE").UsedRange.Rows.Count
复制代码
运行速度太慢,完整数据运行的耗时需要 90+s
附件内原始数据少了很多,也要10+s
详情请下载附件查看。
求教各位大佬,这种情况下该怎么办?
是不是我哪里写错了 ,还是应该使用其他方式进行查询。。。
|
|