|
三维数组不能累计,请老师修改!
在附件中的三维数组代码crr(j, i, brr1(i)) = crr(j, i, brr1(i)) + 1 '怎么不能像表中w--af列样进行累计?而输到Range("m3").Resize(r - 2, 10)各单元格中的都是数值1呢?问题出在哪里?请各位老师帮忙修改!并附代码如下:
Sub macro111() '
Dim Arr0, crr(), Crr1(), crr2(), crr3(), crr4(), brr2(), brr1(), i&, j&, k&, m&, n&, X&
'Dim Sheets() As Worksheets
Sheets("Sheet总表").Select '指定工作表
Application.ScreenUpdating = False
r = Sheets("Sheet总表").Range("B65536").End(xlUp).Row
If r < 3 Then: MsgBox "无可用数据,请导入": Exit Sub
Arr0 = Sheets("Sheet总表").Range("e3").Resize(r - 2, 7)
ReDim crr(0 To 7, 1 To UBound(Arr0), 0 To 9)
For j = 1 To 7
brr1 = Application.Transpose(Application.Index(Arr0, 0, j))
ReDim brr2(9)
For i = 1 To UBound(brr1)
' For i = 1 To UBound(Arr0)
If brr1(i) <> "" Then
' brr2(brr1(i)) = brr2(brr1(i)) + 1
crr(j, i, brr1(i)) = crr(j, i, brr1(i)) + 1 '怎么不能累计?
Else
' brr2(brr1(i)) = ""
crr(j, i, brr1(i)) = ""
End If
Next i
Next j
'******************分别写入工作表***************************
ReDim Crr1(1 To UBound(Arr0), 0 To 9)
ReDim crr2(1 To UBound(Arr0), 0 To 9)
ReDim crr3(1 To UBound(Arr0), 0 To 9)
ReDim crr4(1 To UBound(Arr0), 0 To 9)
ReDim crr5(1 To UBound(Arr0), 0 To 9)
ReDim crr6(1 To UBound(Arr0), 0 To 9)
ReDim crr7(1 To UBound(Arr0), 0 To 9)
'ReDim Arr8(1 To UBound(Arr0), 0 To 9)
For i = 1 To UBound(Arr0)
'For Y = 1 To UBound(Arr0)
For Z = 0 To 9
Crr1(i, Z) = crr(1, i, Z)
crr2(i, Z) = crr(2, i, Z)
crr3(i, Z) = crr(3, i, Z)
crr4(i, Z) = crr(4, i, Z)
crr5(i, Z) = crr(5, i, Z)
crr6(i, Z) = crr(6, i, Z)
crr7(i, Z) = crr(7, i, Z)
'Arr8(Y, Z) = crr(7, Y, Z)
Next Z
Next i
'Next j
'Sheets("Sheet8").Range("L3").Resize(r - 2, 10) = Arr1()
Sheets("Sheet1").Range("m3").Resize(r - 2, 10) = Crr1() '各单元格怎么是数值1,没有累计?
Sheets("Sheet2").Range("m3").Resize(r - 2, 10) = crr2()
Sheets("Sheet3").Range("m3").Resize(r - 2, 10) = crr3()
Sheets("Sheet4").Range("m3").Resize(r - 2, 10) = crr4()
Sheets("Sheet5").Range("m3").Resize(r - 2, 10) = crr5()
Sheets("Sheet6").Range("m3").Resize(r - 2, 10) = crr6()
Sheets("Sheet7").Range("m3").Resize(r - 2, 10) = crr7()
MsgBox "Done!共" & Format(Timer - aa, "0.0000") & "秒" '记录所用的时间
Application.ScreenUpdating = True
'MsgBox "ok"
End Sub |
|