|
本帖最后由 ykcbf1100 于 2024-11-15 18:44 编辑
插入小计,插入合计- Sub ykcbf() '//2024.11.15
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- On Error Resume Next
- With Sheets("操作表")
- r1 = .UsedRange.Find("小计").Row
- If r1 Then
- MsgBox "已有小计,不必再插入小计行!": End
- Else
- r = .Cells(Rows.Count, 2).End(3).Row
- .[a1].Resize(r, 14).UnMerge
- arr = .[a1].Resize(r, 14)
- m = r + 1
- For i = 2 To UBound(arr)
- If arr(i, 1) = Empty Then arr(i, 1) = arr(i - 1, 1)
- Next
- .[a1].Resize(r, 14) = arr
- For i = r To 2 Step -1
- If .Cells(i, 1) <> .Cells(i - 1, 1) Then
- .Rows(m).Insert
- .Cells(m, 2) = "小计"
- .Cells(m, 1) = .Cells(i, 1)
- .Cells(m, 5).Resize(1, 10).Formula = "=SUM(e$" & i & ":e$" & m - 1 & ")"
- .Cells(i, 1).Resize(m - i + 1).Merge
- m = i
- End If
- Next
- r = .Cells(Rows.Count, 2).End(xlUp).Row
- .Cells(r + 1, 2) = "合计"
- .Cells(r + 1, 5).Resize(1, 10).Formula = "=SUMIFS(e$" & 2 & ":e$" & r & ",$b" & 2 & ":$b$" & r & ",""小计"")"
- .Cells(1, 1).Resize(r + 1, 14).Borders.LineStyle = 1
- End If
- End With
- Application.ScreenUpdating = False
- MsgBox "OK!"
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|