ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6340|回复: 8

[求助] 如何通过VBA代码做到手动双面打印?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-8-3 23:41 | 显示全部楼层 |阅读模式
先声明一下:
1、我的打印机不支持自动双面打印!
2、按照网上介绍的“手动双面打印”的方法测试效果,发现不能做到正反两面不能做到(1,2)、(3,4)、(5,6)……每两面为一页的形式,不知是不是自己没搞懂?
请教如何通过VBA代码做到手动双面打印?就是执行代码后先打印奇数页后,将(奇数页已打印完成的)纸张重新放入打印机,能再自动打印偶数页?希望不论奇数页是否与偶数页相同,均能自动辨别处理(均能做到(第1页,第2页)、(第3页,第4页)、(第5页,第6页)……每两面为一页的形式)。且打印完成后,能按正页序(非逆页序)浏览,而无需倒过来重新整理.



该贴已经同步到 tangqingfu的微博

TA的精华主题

TA的得分主题

发表于 2012-8-4 00:04 | 显示全部楼层
WORD本身 就可以只打印奇数页或偶数页的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-4 08:10 | 显示全部楼层
wudixin96 发表于 2012-8-4 00:04
WORD本身 就可以只打印奇数页或偶数页的。

这个我知道,我想有没有更简便的方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-6 15:28 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-8 23:38 | 显示全部楼层
不知能否实现,请各位关注一下……

TA的精华主题

TA的得分主题

发表于 2012-8-9 08:01 | 显示全部楼层
一般的打印机都可以“手动双面打印”,至于tang兄所说的正面(奇数页)打印完成之后,重新打印背面(偶数页)之前需要人工把纸张顺序倒叠过来的问题,可以试试:Ctrl + P  → 选项 → 双面打印选项 →  纸张背面 ,把“纸张背面”复选框 √ 上,然后再打印。

TA的精华主题

TA的得分主题

发表于 2012-9-11 20:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lt0314 于 2012-9-11 20:26 编辑
  1. Sub twopages()
  2. Dim a(), fcell As Range, r1 As Range, r2 As Range
  3. ActiveWindow.View = xlPageBreakPreview

  4. m = ActiveSheet.HPageBreaks.Count
  5. If m > 0 Then
  6. ReDim a(1 To m + 1, 1 To 2)
  7. sss = WorksheetFunction.Transpose(Range("print_area"))
  8. parea = Split(Range("print_area").Address, ":")
  9. nnn = UBound(sss) - 1
  10. Set fcell = Range(parea(0))
  11. For i = 1 To m

  12. a(i, 1) = fcell.Address
  13. Set fcell = ActiveSheet.HPageBreaks(i).Location
  14. a(i, 2) = fcell.Offset(-1, nnn).Address
  15. Next i
  16. a(i, 1) = fcell.Address
  17. a(i, 2) = parea(1)
  18. isodd = m + 1 Mod 2
  19. Set r1 = Range(a(1, 1), a(1, 2))
  20. If m > 1 Then Set r2 = Range(a(2, 1), a(2, 2))
  21. On Error Resume Next
  22. For i = 3 To m + 1 Step 2
  23. Set r1 = Union(r1, Range(a(i, 1), a(i, 2)))
  24. Set r2 = Union(Range(a(i + 1, 1), a(i + 1, 2)), r2)
  25. Next i
  26. End If
  27. If isodd Then Set r2 = Union([iv65536], r2)
  28. r1.PrintPreview
  29. MsgBox "换页"
  30. r2.PrintPreview

  31. End Sub

  32. 是excel的
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-11 22:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

r

本帖最后由 tangqingfu 于 2012-9-11 22:26 编辑
lt0314 发表于 2012-9-11 20:23


请教有没有Word的代码?

TA的精华主题

TA的得分主题

发表于 2015-5-21 16:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先做个记号,下次好找
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 05:54 , Processed in 0.022960 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表