大家好,今天和大家分享“数据量太大,解决用vlookup非常慢”,我有一个数据表,表中有近8000数据,想在数据展示表中实现按编号和对应日期展示数据,分别按A01—A42、B01—B42、C01—C40、D01—D40、E01—E42、F01—F42 与对应时间展示数据,但由于数据多,使用vlookup非常的慢。请老师帮忙使用VBA写个代码,实现快速得到这些数据,非常感谢!!!
一、数据表中的数据(只截一部分数据)
二、数据展示表中的数据(只截一部分数据)
三、动画演示效果 四、所用的vba编程代码 Option Explicit Sub test() Dim dic, arr1, arr2, a, x, y Set dic = CreateObject('Scripting.Dictionary') arr1 = Sheets('数据').Range('A1').CurrentRegion For a = 2 To UBound(arr1) dic(arr1(a, 1) & arr1(a, 2)) = arr1(a, 3) Next a arr2 = Sheets('数据展示').Range('F3').CurrentRegion For x = 2 To UBound(arr2) For y = 2 To UBound(arr2, 2) If dic.exists(arr2(1, y) & arr2(x, 1)) Then arr2(x, y) = dic(arr2(1, y) & arr2(x, 1)) End If Next y Next x Sheets('数据展示').Range('G4:AK' & Rows.Count).ClearContents Sheets('数据展示').[F3].Resize(UBound(arr2), UBound(arr2, 2)) = arr2 End Sub Sub 清空() Sheets('数据展示').Range('G4:AK' & Rows.Count).ClearContents End Sub
五、代码解释截图 备注:如果要数据源练习的朋友,加我微信18664243619,微信给我留言:要素材练习
|