在使用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);当前行插入分页符。
如果到这里,您还不明白,那么,请联系本站站长,俺会继续尽力解决您的问题!