VBA:如何在大行数上将Scripting.Dictionary与Lookup宏集成(检查范围,编写匹配条件,循环)

时间:2019-02-27 11:24:54

标签: excel vba

我是第一次在Excel中将字典与vba一起使用

我有一个表,其中有500k +行按时间戳顺序排序

我写了一个宏,该宏应该在新的工作表中每五分钟(五行)聚合一次,并写入第一个值diff。从零开始。

但是,由于它遍历所有500k +行,因此效率非常低。我只用了Scripting.Dictionary而不是VLOOKUP,它的运行时间不到20秒。 您是否有任何想法如何整合下面的两个宏或将其指向在线资源?

例如 表1

React Developer Tools

表2

TimeStamp | Value
00:00     | 0
00:01     | 0
00:02     | 1.004
00:03     | 1.002
00:04     | 1.006
00:05     | 1.011

聚集宏

TimeStamp | Value
00:00     | 1.004
00:05     | 1.011

查找宏

Sub Macro1()

    Dim x As Integer
    Sheets("New").Select
    i = 2
    Counter = 0
    Sheets("5_min").Select
    FirstOfFive = 2
    Range("A1").Select
    LastRow = Selection.End(xlDown).Row
    Sheets("Main_1min").Select


    For J = FirstOfFive To Last Row

        For i = i To i + 4
        Cells(i, 1).Select
        If Cells(i, 1).Value = 0 Then
        ActiveCell.Offset(1, 0).Select
        Counter = Counter + 1
        Else
        StartVal = Selection.Value
        GoTo 2
        End If

        Next i

    2
    Sheets("5_min").Select
    Cells(J, 2).Value = StartVal
    Sheets("Main_1min").Select
    i = i + 5 - Counter
    Counter = 0
    Next J


End Sub

0 个答案:

没有答案