|
- Sub test()
- Dim i&, arr, brr, crr, Str, OrderStatus
- Dim t#
- t = Timer
- Application.ScreenUpdating = False
- Dim d As Object
- Set d = CreateObject("scripting.dictionary")
- OrderStatus = Sheet3.Range("G1").Value
- Sheet3.Range("d2:e65536").ClearContents
- arr = Sheet3.Range("a2:e" & Sheet3.Cells(Rows.Count, 1).End(xlUp).Row)
- For i = 1 To UBound(arr)
- Str = arr(i, 1) & "#" & arr(i, 2) & "#" & arr(i, 3) & "#" & OrderStatus
- d(Str) = i
- Next
- brr = Sheet2.Range("a2:r" & Sheet2.Cells(Rows.Count, 1).End(xlUp).Row)
- ReDim crr(1 To UBound(brr), 1 To 1)
- For i = 1 To UBound(brr)
- crr(i, 1) = Left(brr(i, 4), 10)
- Next
- Sheet2.Range("a2").Resize(65536, 1).ClearContents
- Sheet2.Range("a2").Resize(UBound(brr), 1) = crr
- For i = 1 To UBound(brr)
- Str = brr(i, 8) & "#" & brr(i, 13) & "#" & brr(i, 1) & "#" & brr(i, 6)
- If d.exists(Str) Then
- m = d(Str)
- arr(m, 4) = arr(m, 4) + brr(i, 16)
- arr(m, 5) = arr(m, 5) + brr(i, 18)
- End If
- Next
- Sheet3.Range("a2:e65536").ClearContents
- Sheet3.Range("a2").Resize(UBound(arr), UBound(arr, 2)) = arr
-
- MsgBox "计算完成,耗时" & Format((Timer - t), "0.0") & "秒", 64, "Microsoft Excel"
- Application.ScreenUpdating = True
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|