返回列表 上一主題 發帖

[發問] for next 迴圈速度慢,如何改速度能加快

  1. Sub WWW()
  2. Dim Arr, Brr, xD, i&, j%, N&, SS, TM
  3. TM = Timer
  4. Set xD = CreateObject("Scripting.Dictionary")
  5. Arr = Range([M4], Cells(Rows.Count, "M").End(xlUp))
  6. ReDim Brr(1 To UBound(Arr), 1 To 2)
  7. For i = 1 To UBound(Arr)
  8.     If Arr(i, 1) <> "" Then xD(Arr(i, 1)) = i
  9. Next i

  10. Arr = Range([D4], Cells(Rows.Count, "D").End(xlUp)(1, 5))
  11. For i = 1 To UBound(Arr)
  12.     N = xD(Arr(i, 1)): If N = 0 Then GoTo 101
  13.     SS = Split(Mid(Brr(N, 1), 2) & "/", "/")
  14.     For j = 2 To 5
  15.         If IsNumeric(Arr(i, j)) Then
  16.            SS(0) = Val(SS(0)) + Arr(i, j)
  17.            SS(1) = Val(SS(1)) + 1
  18.         End If
  19.     Next j
  20.     Brr(N, 1) = "=" & SS(0) & "/" & SS(1) '=總合計/個數
  21.     Brr(N, 2) = Brr(N, 2) + 1
  22. 101: Next i

  23. [N4].Resize(UBound(Brr), 2) = Brr
  24. MsgBox "已完成!  總共:" & Timer - TM & "秒 !"
  25. End Sub
複製代碼
Xl0000001.rar (91.71 KB)

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題