- Sub test()
- Dim i, j, k, l, xrow, ycol As Long
- Dim m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12 As Single
- Dim arr, brr
- Dim d As Object
- With Sheets(1)
- xrow = .Cells(1, 2).End(xlDown).Row
- ycol = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
- arr = .Range(.Cells(1, 1), .Cells(xrow, ycol))
- ReDim brr(UBound(arr, 1) - 1, 15)
- For i = 2 To UBound(arr, 1)
- brr(i - 2, 0) = arr(i, 2)
- brr(i - 2, 14) = arr(i, 5)
- For j = 1 To UBound(arr, 2)
- If (j + 9) <= UBound(arr, 2) Then
- k = Split(arr(1, j + 9), ".")(1) * 1
- If k >= 1 And k <= 4 Then
- m1 = arr(i, j + 9) + m1
- brr(i - 2, 1) = m1
- ElseIf k >= 5 And k <= 8 Then
- m2 = arr(i, j + 9) + m2
- brr(i - 2, 2) = m2
- ElseIf k >= 9 And k <= 13 Then
- m3 = arr(i, j + 9) + m3
- brr(i - 2, 3) = m3
- ElseIf k >= 14 And k <= 17 Then
- m4 = arr(i, j + 9) + m4
- brr(i - 2, 4) = m4
- ElseIf k >= 18 And k <= 22 Then
- m5 = arr(i, j + 9) + m5
- brr(i - 2, 5) = m5
- ElseIf k >= 23 And k <= 26 Then
- m6 = arr(i, j + 9) + m6
- brr(i - 2, 6) = m6
- ElseIf k >= 27 And k <= 30 Then
- m7 = arr(i, j + 9) + m7
- brr(i - 2, 7) = m7
- ElseIf k >= 31 And k <= 35 Then
- m8 = arr(i, j + 9) + m8
- brr(i - 2, 8) = m8
- ElseIf k >= 36 And k <= 39 Then
- m8 = arr(i, j + 9) + m8
- brr(i - 2, 9) = m8
- ElseIf k >= 40 And k <= 43 Then
- m9 = arr(i, j + 9) + m9
- brr(i - 2, 10) = m9
- ElseIf k >= 44 And k <= 48 Then
- m11 = arr(i, j + 9) + m11
- brr(i - 2, 11) = m11
- ElseIf k >= 49 And k <= 52 Then
- m12 = arr(i, j + 9) + m12
- brr(i - 2, 12) = m12
- End If
- End If
- Next
- Next
- Debug.Print brr(0, 0)
- .Range("a18").Resize(UBound(brr, 1) + 1, UBound(brr, 2) + 1) = brr
- End With
- End Sub
复制代码
又审核? |