|
Private
Sub CommandButton2_Click() Dim ArrXH, ArrYS, BZ, ArrJG, TempX, TempY, ArrXHDJ Dim d As
Object, dXH As
Object, i&, j&, K&, N& On
Error
Resume
Next '型号 ArrXHDJ = Sheet1.Range("F2:G" & Sheet1.Range("F65536").End(xlUp).Row) Set d = CreateObject("Scripting.Dictionary") Set dXH = CreateObject("Scripting.Dictionary") ArrYS = Sheet1.Range("A2:D" & Sheet1.Range("A65536").End(xlUp).Row) BZ = Range("A2") ReDim ArrJG(1 To 13, 1 To 1) ReDim ArrXH(1 To 2, 1 To 1) K = 0 N = 0 For i = 1 To
UBound(ArrYS) If ArrYS(i, 1) = BZ Then If
Not d.exists(ArrYS(i, 3)) Then K = K + 1 ReDim
Preserve ArrJG(1 To 13, 1 To K) d(ArrYS(i, 3)) = K ArrJG(1, K) = ArrYS(i, 3) End
If TempY = d(ArrYS(i, 3)) '判断型号 If
Not dXH.exists(ArrYS(i, 2)) Then N = N + 1 ReDim
Preserve ArrXH(1 To 2, 1 To N) dXH(ArrYS(i, 2)) = N ArrXH(1, N) = ArrYS(i, 2) ArrXH(2, N) = WorksheetFunction.VLookup(ArrYS(i, 2), ArrXHDJ, 2, 0) End
If TempX = dXH(ArrYS(i, 2)) + 1 If Err.Number <> 0 Then Err.Clear Else ArrJG(TempX, TempY) = ArrYS(i, 4) + ArrJG(TempX, TempY) End
If End
If Next Range("A5:M28,B4:M4,B30:M30").ClearContents Range("A5").Resize(UBound(ArrJG, 2), 13) = Application.Transpose(ArrJG) Range("B4").Resize(1, UBound(ArrXH, 2)) = Application.Index(ArrXH, 1, 0) Range("B30").Resize(1, UBound(ArrXH, 2)) = Application.Index(ArrXH, 2, 0) End
Sub |
|