这个问题刚好我这两天也遇到过,一个在物业办公室工作的朋友也来找我帮忙,希望可以一户打印一张《2016年物业缴费明细》。
前面的数据整理过程在这里就不多说了,到了打印这个环节,我的天总共1800多户……经过几种不同方法的测试后,我选择了使用VBA来解决。
最终效果如下:
分页预览模式下
![]()
思路:
1.使用vba判断需要分页的位置。
2.在需要分页的位置设置分页。
3.设置重复打印标题行,在页眉输入标题,在页脚输入页码等。
知识补充:
![]()
1.打印范围与自动缩放
在页面设置选项卡选择打印范围,并设置自动缩放,宽度1页。这样可以确保我们需要的内容可以完整的在一页纸上打印出来。
2.分页
在页面设置选项卡有一个“插入分页”,可以让用户自己选择需要分开打印的位置。
3.重复打印标题行
当需要打印的数据很多,需要在每一页都打印标题。可以在页面设置选项卡设置打印标题行。
4.vba
这个……有兴趣可以钻研一下。
5.分页上限
一张工作表的最高分页上限是1026页,所以超过1026的话就要把工作表再复制一张,把已经打印的删掉,没打印完的数据继续分页。
具体步骤:
1.给需要分页的位置进行标记,以便vba可以识别判定。题主的工作表很简单,只要在B列中有内容就判定为需要分页。
2.在vba编辑器中新建模块,输入以下代码。Sub 添加分页()
Dim i As Integer
For i = 2 To X '将X设置为你的工作表行数
If Cells(i, 2)"" Then '判断当地2列的单元格不是空值时,运行下面的代码
Cells(i, 1).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell '插入“分页”
End If
Next i
End Sub 3.执行宏“添加分页”。
4.在页眉页脚补充内容。
![]()
5.完成。 |