利用宏实现奇数偶数及正反打印.docx

利用宏实现奇数偶数及正反打印.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用宏实现奇数偶数及正反打印

VBA宏打印奇数偶数页并实现正反打印宏打印奇数偶数页并实现正反打印Sub aTry() Dim i%, Ps% Ps = ExecuteExcel4Macro(GET.DOCUMENT(50)) 总页数MsgBox 现在打印奇数页,按确定开始. For i = 1 To Ps Step 2activesheet.PrintOut from:=i, To:=i Next iMsgBox 现在打印偶数页,按确定开始. For i = 2 To Ps Step 2activesheet.PrintOut from:=i, To:=i Next iEnd Sub大家都知道Word里面有一项设置可以让我们选择打印奇数页还是偶数页,这样我们很容易就实现了 Word的正反打印,Excel中貌似找不到这个选项,如果你的打印机支持的话,你可以通过页面设置,工作表选项卡,选项按钮,切换到完成方式,可能会有奇数偶数或者正反打印,当然这一切取决于你的打印机驱动是否支持,如果找不到,那该怎么办呢?难道只能手动打印吗?其实我们可以利用VBA宏变通一下的,首先获取总页数,奇数页打印也就是从1开始,然后1、3、5、7、9,步长为2,利用VB语言可以描述如下: TotalPages就是总页数 Step是计算步长,这里i每次加2For i=1 To TotalPages Step 2 打印i页Next i这里很明显将打印1、3、5、7、9这样的奇数页,如果是2、4、6、8、10这样的偶数页该怎么办呢,可以看出步长依旧是2,只是起始从2开始了,那么i初始应该设置为2。通过PrintOut方法就能进行打印了,这里我们默认打印选中的Sheet,所以使用ActiveWindow.SelectedSheets: TotalPages就是总页数 Step是计算步长,这里i每次加2 打印奇数页For i = 1 To TotalPages Step 2ActiveWindow.SelectedSheets.PrintOut From:=i, To:=iNext i为了通用,我们将上面的方法封装成一个Sub过程: StartPage要打印的起始页 TotalPages要打印的总页数 SkipPages每次打印跳过的页数Sub PrintSheet(ByValStartPage As Integer, _ByValTotalPages As Integer, _ByValSkipPages As Integer) For i = StartPage To TotalPages Step SkipPages+1ActiveWindow.SelectedSheets.PrintOut From:=i, To:=i Next iEnd Sub这里步长为了便于理解被我改为SkipPages,跳过的页数,比如步长2,也就是说每次跳过1 页。好,到这里基本上是万事俱备只欠东风了,这个东风也就是如何获取打印的总页数,其实我们可以通过Excel内置宏GET.DOCUMENT获取,其中参数是50,表明“当前设置下欲打印的总页数,其中包括注释,如果文件为图表,值为1”。调用内置宏,通过ExecuteExcel4Macro方式,也就是总页数如下:TotalPages = ExecuteExcel4Macro(Get.Document(50))总页数有了,下面就是奇数页,偶数页打印的方法了: 奇数页Sub PrintOddPages()TotalPages = ExecuteExcel4Macro(Get.Document(50))PrintSheet 1, TotalPages, 1End Sub 偶数页Sub PrintEvenPages()TotalPages = ExecuteExcel4Macro(Get.Document(50))PrintSheet 2, TotalPages, 1End Sub接下来就是如何打印正反面了,其实我们先让打印机打印正面,正面是1、3、5、7、9这样的奇数页,然后暂停打印,将纸张翻过来,再让打印机打印偶数页,看似没有什么问题,实际上,纸张翻过来打印偶数页时必须从大到小打印,也就是说类似于10、8、 6、4、2这样的顺序,其实我们只需要设置起始页为总页数,结束页为2,步长为-2就可以了,将原来的PrintSheet函数修改一下: StartPage要打印的起始页 TotalPages要打印的总页数 SkipPages每次打印跳过的页数 Invert 是否逆序Sub PrintSheet(ByValStartPage As Integer, _ByValTotalPages As Integer, _ByValSkipPages As I

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档