在使用Excel处理数据的时候,我们常常遇到小计的问题;即:间断性的对部分数据进行合计;
针对这样的数据,也难免存在所有的小计都在同一个工作表中;如果您的工作表当中,小计数量超过上百,在打印的时候如何实现每个小计和标题自动分页打印呢?
首先,您的工作表小计数量不是固定的、数据行列也不是固定的,针对这种多变的复杂的数据,我们怎么样才能让EXCEL小计自动分页打印呢?
如果是这样,已经没有别的路可走了,必须使用VBA来实现!
一、实现方法
我们先看下表!
上图中,有多个小计,现在,我们要实现的效果是:如上图!
每个小计和标题文字,自动分页打印!
所使用的代码非常简单,可功能却相当强大!
如上图一样,右键点击“Sheet1”,在弹出的快捷菜单中选择“查看代码”,弹出如下图的VBA代码编写窗口!
到了这里,已经是关键时刻了,什么都别说了,如果您不懂代码,那么,就按上图的代码,直接输入相同代码即可。
为了方便您的学习,下面,本站将代码粘贴如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.ResetAllPageBreaks '删除原有的所有分页符 '以“小计”为参照对象,自动加入分页符 For i = 1 To Sheet1.UsedRange.Rows.Count If (Trim(Sheet1.Cells(i, 1).Value)) = "小计" Then ActiveSheet.HPageBreaks.Add Rows(i + 1) End If Next i End Sub
怎么样,简单吧!
二、代码说明
①实现原理
本例的按小计自动分页打印的原理是:查找A列中的单元格,以A列为参照对象,如果找到“小计”二字,就在这个单元格的下一个单元格,加入分页符;
这样,就实现按小计自动分页打印了。
②代码解释
代码中所出现的Sheet1,是一表的英文名称,即本代码适用于Sheet1,如果您的工作表不是Sheet1,请自行修改。
代码中的(Trim(Sheet1.Cells(i, 1).Value)) = "小计",其中的1,代表第一列,其中的i代码每行;实现的功能就是查找A列即第一列的各单元格,如果出现“小计”二字,就通过下面的代码,在该单元格的下一个单元格实现插入分页符;
ActiveSheet.HPageBreaks.Add Rows(i + 1);当前行插入分页符。
如果到这里,您还不明白,那么,请联系本站站长,俺会继续尽力解决您的问题! [Web开发]上篇—水晶报表导出为word/excel文件的代码 [Web开发]下篇—水晶报表导出为word/excel文件的代码 [Web开发]关于虚拟空间的System.Web.HttpUnhandledExceptio… [Web开发]在C#中如何对Excel单元格设置背景色以及对Range设… [网页制作]js将表格导出为word/excel文件的代码 [办公软件]Excel宏与函数的本质区别 [办公软件]excel菜单栏和右键菜单被屏蔽的解决办法 [办公软件]如何打印Excel的批注 [办公软件]Excel数据分列与合并的经验总结 [办公软件]总结Excel自动填充功能的高级技巧
|