ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何批量建立分页小计

如何批量建立分页小计

作者:绿色风 分类: 时间:2022-08-17 浏览:124
楼主
breezy
Q:在一份很长的打印表格中,要在每一个分页增加一个小计,该如何实现?示例见附件:

表格.rar

A:代码如下:

  1. '
  2. 'Author:曾风耀    [ET] ID:breezy
  3. 'MSN: jovialromance@hotmail.com
  4. '程序:分页小计
  5. 'Date:2009-07-10
  6. '
  7. Sub 分页小计()
  8.     Dim fistcell As Range, hbCell As Range
  9.     Dim hb As HPageBreak
  10.     Set fistcell = Range("A7")
  11.    
  12.     For Each hbCell In Range(fistcell, fistcell.End(xlDown))
  13.         If hbCell = "本页小计" Then hbCell.EntireRow.Delete
  14.     Next
  15.    
  16.     ActiveWindow.View = xlPageBreakPreview
  17.     ActiveSheet.HPageBreaks.Add Before:=fistcell.End(xlDown).Offset(1, 0)
  18.     ActiveSheet.HPageBreaks.Add Before:=fistcell.End(xlDown).Offset(2, 0)
  19.     ActiveSheet.HPageBreaks.Add Before:=fistcell.End(xlDown).Offset(3, 0)
  20.     For Each hb In ActiveSheet.HPageBreaks
  21.         Set hbCell = hb.Location.Offset(-1, 0)
  22.         With hbCell
  23.             .Activate
  24.             .EntireRow.Insert
  25.             .Offset(-1).Value = "本页小计"
  26.             .Offset(-1, 3).Resize(1, 4).Formula = "=SUBTOTAL(9," & fistcell.Offset(0, 3).Address(1, 0) & ":" & .Offset(-2, 3).Address(1, 0) & ")"
  27.         End With
  28.         Set fistcell = hbCell
  29.     Next
  30.     ActiveWindow.View = xlNormalView
  31.     MsgBox "分页完成!", vbInformation, "breezy友情提示"
  32. End Sub
2楼
omnw
非常有实用性,经常会用到。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap