|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
参与一下。。。
- Sub ykcbf() '//2024.5.29
- Dim arr, brr, d
- Application.ScreenUpdating = False
- Set d = CreateObject("scripting.dictionary")
- arr = Range("b8:x12")
- ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
- For i = 1 To UBound(arr)
- s = arr(i, 1)
- If s <> Empty Then
- If Not d.Exists(s) Then
- m = m + 1
- d(s) = m
- brr(m, 1) = arr(i, 1)
- brr(m, 2) = arr(i, 2)
- brr(m, 3) = arr(i, 3)
- brr(m, 4) = arr(i, 4)
- brr(m, 5) = arr(i, 5)
- brr(m, 6) = arr(i, 6)
- brr(m, UBound(arr, 2)) = arr(i, UBound(arr, 2))
- For j = 7 To 22 Step 2
- brr(m, j) = arr(i, j)
- Next
- Else
- r = d(s)
- brr(r, 2) = brr(r, 2) & arr(i, 2)
- brr(r, 4) = brr(r, 4) + arr(i, 4)
- brr(r, 5) = brr(r, 5) + arr(i, 5)
- brr(r, 6) = brr(r, 6) + arr(i, 6)
- For j = 7 To 22 Step 2
- brr(r, j) = brr(r, j) + arr(i, j)
- Next
- End If
- End If
- Next
- Range("b16").Resize(5, 25) = ""
- Range("b16").Resize(m, UBound(arr, 2)) = brr
- For i = 16 To 16 + m - 1
- For j = 9 To 23 Step 2
- If Cells(i, j - 1) <> Empty Then
- Cells(i, j) = Application.Round(Cells(i, j - 1) * 100 / Cells(i, 6), 2)
- End If
- Next
- Next
- Set d = Nothing
- Application.ScreenUpdating = True
- MsgBox "OK!"
- End Sub
复制代码
|
|