Excel VBA如何打印当前页以及从当前页打印到结束 wps VBA打印 图文

2021年2月20日16:31:17 评论 52 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
微信公众号 【EXCEL880】 QQ群【273774246】

VBA里不能直接获得当前页 可以通过分页符位置和当前活动单元格位置判断当前页 这样就可以打印了 然后获得总页数 再打印到总页数即可

Sub 打印当前页()
'如果当前表是空表则退出程序
If IsEmpty(ActiveSheet.UsedRange) Then MsgBox "当前工作表为空!", 64, "出错": Exit Sub
If Intersect(ActiveSheet.UsedRange, ActiveCell) Is Nothing Then MsgBox "请选择已用区域!", 64, "出错": Exit Sub
Dim 水平分页符 As Integer, 垂直分页符 As Integer, Hrow As Integer
Dim 当前页 As Integer, m As Integer, n As Integer, Vcolumn
水平分页符 = ActiveSheet.HPageBreaks.Count '记录水平分页符数量
垂直分页符 = ActiveSheet.VPageBreaks.Count '记录垂直分页符数量
'获取纵当前页的分页符行号
For n = 1 To 水平分页符 '横向循环
Hrow = ActiveSheet.HPageBreaks(n).Location.Row '返回分页符位置的单元格行号
If Hrow > ActiveCell.Row Then Exit For '如果大于当前行号则退出循环
Next
'获取当前页的横向位置
For m = 1 To 垂直分页符 '纵向循环
Vcolumn = ActiveSheet.VPageBreaks(m).Location.Column '返回分页符位置的单元格列号
If Vcolumn > ActiveCell.Column Then Exit For '如果大于当前列号则退出循环
Next
'获取当前页的纵向位置
If ActiveSheet.PageSetup.Order = xlOverThenDown Then
当前页 = (n - 1) * (垂直分页符 + 1) + m '记录当前页的页数
Else
当前页 = (m - 1) * (水平分页符 + 1) + n '记录当前页的页数
End If
If MsgBox("当前单元格在本工作表中处于" & Chr(10) & "第" & 当前页 & "页" & Chr(10) & "是否打印当前页?", 65, "友情提示") = vbOK Then
ActiveSheet.PrintOut From:=当前页, To:=当前页 '打印当前页
End If
End Sub

打印到最后一页 只需要改倒数第3行的位置

ActiveSheet.PrintOut From:=当前页, To:=Activesheet.PageSetup.Pages.Count  '打印当前页到最后一页
微信公众号 【EXCEL880】 QQ群【273774246】
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

发表评论

您必须才能发表评论!