分享

数据量大,解决Vlookup非常慢

 L罗乐 2018-08-16
数据量太大,解决用Vlookup非常慢

大家好,今天和大家分享“数据量太大,解决用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,微信给我留言:要素材练习

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多