|
10学分
表格达到接近33000行时,不能运行宏。
还请大侠帮忙看看如下宏。
谢谢了!
附件太大了,不能上传,附宏如下:
Sub 汇总()
Dim d As Object, i%, j%, arr, brr, crr, row1&
Set d = CreateObject("scripting.dictionary")
row1 = Sheet1.Range("D1048576").End(3).Row
j = 1
arr = Sheet1.Range("c2:g" & row1)
For i = 1 To UBound(arr)(运行到这里出错)
If Not d.exists(arr(i, 1) & "," & arr(i, 2)) Then
d.Add arr(i, 1) & "," & arr(i, 2), arr(i, 5)
Else
d(arr(i, 1) & "," & arr(i, 2)) = d(arr(i, 1) & "," & arr(i, 2)) + arr(i, 5)
End If
Next
brr = d.keys
crr = d.items
ReDim drr(1 To d.Count, 1 To 3)
For i = 0 To UBound(brr)
If crr(i) <> 0 Then
drr(j, 1) = Split(brr(i), ",")(0)
drr(j, 2) = Split(brr(i), ",")(1)
drr(j, 3) = crr(i)
j = j + 1
End If
Next
Sheet2.Range("a2").Resize(d.Count, 3) = drr
Set d = Nothing
End Sub
Dim d As Object, i%, j%, arr, brr, crr, row1&
改为
Dim d As Object, i&, j%, arr, brr, crr, row1&
还错吗
|
最佳答案
查看完整内容
Dim d As Object, i%, j%, arr, brr, crr, row1&
改为
Dim d As Object, i&, j%, arr, brr, crr, row1&
还错吗
|