今天,还是说下打印
示例文件下载
链接:https://pan.baidu.com/s/1o_XNGyqM3ywsGoXg-pDOcg
提取码:abcd
关注公众号 ↓
比如说,我想打印我选择的区域
如下图所示
我只想打印前几行
为此,小编封装了一个打印机设置的代码
分别是打印机设置以及逆序打印 代码如下
Sub 打印机设置(工作表 As Worksheet, 打印区域 As String, _
Optional 打印方向 As Boolean = False, Optional 纸张大小 As Long = 1, Optional 右边距 As Long = 1, _
Optional 左边距 As Long = 1, Optional 上边距 As Long = 2, Optional 下边距 As Long = 1.5, _
Optional 左页眉 = "", Optional 左页脚 As String = "", Optional 中心页脚 As String = "", _
Optional 右页脚 As String = "", Optional 标题 As String = "")
With 工作表.PageSetup
.Orientation = IIf(打印方向, xlLandscape, xlPortrait)
.PaperSize = IIf(纸张大小 = 1, xlPaperA4, xlPaperA5)
.RightMargin = Application.CentimetersToPoints(右边距) '
.LeftMargin = Application.CentimetersToPoints(左边距)
.TopMargin = Application.CentimetersToPoints(上边距)
.BottomMargin = Application.CentimetersToPoints(下边距)
.CenterHorizontally = True '水平中心
.LeftHeader = 左页眉
.LeftFooter = 左页脚
.CenterFooter = 中心页脚
.RightFooter = 右页脚
.PrintTitleRows = 标题
.PrintArea = 打印区域
.Zoom = False '自适应缩放
.FitToPagesWide = 1
.FitToPagesTall = 100
End With
End Sub
Sub 逆序打印(工作表 As Worksheet)
Dim k&, x&
k = Application.ExecuteExcel4Macro("Get.Document(50)") '获取整份文档的页数
For x = k To 1 Step -1
工作表.PrintOut ActivePrinter:="EPSON L130 Series", from:=x, to:=x
Next
End Sub
复制
而调用,也非常的简单
Sub 指定区域打印()
Dim Rng As Range, iRow$, YesNo$, Flag As Boolean, strTitle$
Dim Sht As Worksheet
Set Sht = ActiveSheet
On Error Resume Next
Set Rng = Application.InputBox("请选择需要打印的区域", "EXCEL VBA 练习 提示!", , , , , , 8)
If Rng Is Nothing Then MsgBox "请重新选择!", 64, "提示!": Exit Sub
If Rng.Count = 1 Then MsgBox "区域范围那么小....": Exit Sub
Set Rng = Intersect(Rng, Rng.Parent.UsedRange)
iRow = Application.InputBox("标题行数", "EXCEL VBA 练习 提示!", 1, , , , , 1)
If iRow < 0 Then MsgBox "不能为负数...", 64, "提示": Exit Sub
If iRow >= 10 Then MsgBox "标题行有那么多...?": Exit Sub
strTitle = IIf(iRow = 0, "", "$1:$" & iRow)
YesNo = MsgBox("确定:横向 取消:纵向", vbYesNo, "选择打印方向")
Flag = IIf(YesNo = 7, False, True)
Call 模块.打印机设置(工作表:=Sht, 打印区域:=Rng.Address(0, 0), 打印方向:=Flag, _
左页眉:=Format(Now, "yyyy-mm-dd hh:mm:ss"), 左页脚:="制单人:Excel VBA 练习", _
右页脚:="第 &P 页,共 &N 页", 标题:=strTitle)
Call 模块.逆序打印(Sht)
End Sub
复制
代码中
第6至15行,判断用户选择的区域、表头行数以及打印方向,这些都可以封装,我们以后在慢慢优化...
第16行调用自定义函数打印机设置,由于代码放置在命为模块的模块中
输入模块.会自动弹出里面的代码
这里小编使用中文在封装打印机设置,就不在解析,只用工作表 As Worksheet, 打印区域 As String 这两个是必选参数,其余的是可选参数
第17行调用自定义函数 逆序打印参数也只有一个,代码意思也就是从最后一页一直向第一页打印,这样打印出来就不用再次整理...
收工!我们明天见
如果小伙伴有好的思路,可以在小编的公众号留言发给小编研究下
文章觉得有用,点个赞+在看,你的每一次点赞和转发就是小编原创的动力
文章转载自Excel VBA练习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
1831次阅读
2025-04-09 15:33:27
2025年3月国产数据库大事记
墨天轮编辑部
856次阅读
2025-04-03 15:21:16
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
594次阅读
2025-04-10 15:35:48
征文大赛 |「码」上数据库—— KWDB 2025 创作者计划启动
KaiwuDB
493次阅读
2025-04-01 20:42:12
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
480次阅读
2025-04-11 09:38:42
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
457次阅读
2025-04-14 09:40:20
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
398次阅读
2025-04-07 09:44:54
天津市政府数据库框采结果公布!
通讯员
357次阅读
2025-04-10 12:32:35
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
348次阅读
2025-04-17 17:02:24
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
334次阅读
2025-04-18 10:01:22