2024年2月24日发(作者:)
EXCEL数扰分页打印实例
在工作中经常会碰到EXCEL中的数据要分页打印且每页头几行和最后几行都必乡保留,还要有页码。这也是本人在铁塔工作过程中碰到的一种情况,与大家分享。
一、 实现工作目标
将”订单打印版.xlsm”表中数据(如图1)分页打印(如图2)并隐藏第6行说明
图1
每页打印8行内容
每页打印都包含此内容
每页打印都包含此内容
图2
插入页脚分页
二、 实际操作步骤
1.按如下图设置单元格:
添加打印按钮,填加宏代码后指向该宏
3、新建打印模板文件
打印模板数据行数
本行打印自动隐藏
空白行数为8行,并设置好行高,列宽等
第6行隐藏后没有张2页
4、按ALT+F11将下列代码粘贴在代码窗口中:
Sub 订单打印PDF()
If [订单总数] = 0 Then Exit Sub
Dim twb As Workbook
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim n As Integer
Dim Mystr1 As String
Dim Mystr2 As String
Set twb = ( & "DD_")
yAlerts = False
Updating = False
("铁塔需求订单确认表").Rows(6).Hidden = True
m = Int([订单总数] / 8)
n = [余数]
Mystr1 = "第"
Mystr2 = "页"
If n = 0 Then
For k = 1 To m
For i = 1 To 8
For j = 1 To 17
("铁塔需求订单确认表").Cells((i + 6), j) =
((i + 6 + (k - 1) * 8), j)
Next j
Next i
("铁塔需求订单确认表").Footer =
Mystr1 & k & Mystr2
("铁塔需求订单确认表").Activate
ut Copies:=1, Collate:=True
Next k
Else
If [订单总数] < 8 Then
For i = 1 To n
For j = 1 To 17
("铁塔需求订单确认表").Cells((i + 6), j) =
((i + m * 8 + 6), j)
Next j
Next i
("铁塔需求订单确认表").Footer = Mystr1
& 1 & Mystr2
("铁塔需求订单确认表").Activate
ut Copies:=1, Collate:=True
Else
For k = 1 To m
For i = 1 To 8
For j = 1 To 17
("铁塔需求订单确认表").Cells((i + 6), j) =
((i + 6 + (k - 1) * 8), j)
Next j
Next i
("铁塔需求订单确认表").Footer =
Mystr1 & k & Mystr2
("铁塔需求订单确认表").Activate
ut Copies:=1, Collate:=True
Next k
Sheets("铁塔需求订单确认表").Range("a7:q14") = ""
For i = 1 To n
For j = 1 To 17
("铁塔需求订单确认表").Cells((i + 6), j) =
((i + m * 8 + 6), j)
Next j
Next i
("铁塔需求订单确认表").Footer = Mystr1
& m + 1 & Mystr2
("铁塔需求订单确认表").Activate
ut Copies:=1, Collate:=True
End If
End If
Set twb = Nothing
yAlerts = True
Updating = True
End Sub
5.将宏代码窗口关闭,另存为启用宏的表格。
6.将PDF打印设置成默认打印机。
7.点击表格中的按钮“打印”就可以生成我们所需要的文件了。
本文的讲解到此就结束了。谢谢!


发布评论