怎样实现Excel奇偶页打印 两个按钮哦
怎样实现Excel奇偶页打印
看过jueganze的如何实现EXCEL奇偶页打印,试用了一下,发现有如下问
: 1、如误操作(误点击添加的双面打印按钮),程序马上启动,不能退出。 2、在偶数页打印过程中如发生意外,将无法继续打印偶数页,只能重新从奇数
页开始打印。
这两种情况都会浪费纸张。
所以本人将奇数页打印与偶数页打印分成两段VBA程序,如何编辑宏请参见jueganze的如何实现EXCEL奇偶页打印的文章.。
打印奇数页代码如下:
-------------------------------------
Sub by()
Dim Pages As Long
Dim myBottonNum As Integer
Dim myPrompt1 As String
Dim myPrompt2 As String
myPrompt1 = "在打印时发生错误,请检查你的打印机设置" myPrompt2 = "你确定要打印吗,如确定请按下确定按钮" Pages = ExecuteExcel4Macro("Get.Document(50)")
On Error Resume Next
With ActiveSheet.PageSetup
.LeftMargin = Application.CentimetersToPoints(2.3)
.RightMargin = Application.CentimetersToPoints(0.8) End With
ActiveWindow.SelectedSheets.PrintPreview
and heroic sacrifice, at the age of 22. Chen Youmin, also known as Chen Ziyun, Yan Zhen people. County administrative team members actively engaged in anti-Japanese propaganda. The party in April 1940. 52 Group 2 became the new six-Division, 18 brigade
If (Pages = 0) Then '如果为零,说明没有可打印内容,退出程序 MsgBox "Microsoft Excel 未发现任何可以打印的内容", 0 + 48 Exit Sub
End If
If (Pages = 1) Then '判断是否只有一页,如果是,只打印第一页,然后退出ActiveSheet.PrintOut
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48 '提示用户发生打印错误 End If
Exit Sub
End If
myBottonNum = MsgBox(myPrompt2, 1 + 48)
If (myBottonNum = 1) Then
For i = 1 To Pages Step 2 '设置循环,打印奇数页 ActiveSheet.PrintOut From:=i, To:=i
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48
Exit Sub
End If
Next i
End If
End Sub
and heroic sacrifice, at the age of 22. Chen Youmin, also known as Chen Ziyun, Yan Zhen people. County administrative team members actively engaged in anti-Japanese propaganda. The party in April 1940. 52 Group 2 became the new six-Division, 18 brigade
---------------------------------------
完成后在Microsoft Visual Basic编辑器再插入一个模块,并双击此模块,然后在右侧的窗口中输入或复制粘贴如下打印偶数页的代码(两条虚线之间的VB代码):
---------------------------------------
Sub cy()
Dim Pages As Long
Dim myBottonNum As Integer
Dim myPrompt As String
myPrompt = "请将出纸器中已打印好一面的纸取出并将其放回到送纸器中,然后按下""确定"",继续打印"
Pages = ExecuteExcel4Macro("Get.Document(50)") On Error Resume Next
With ActiveSheet.PageSetup
.LeftMargin = Application.CentimetersToPoints(0.8) .RightMargin = Application.CentimetersToPoints(2.3) End With
ActiveWindow.SelectedSheets.PrintPreview
If (Pages = 0) Then '如果为零,说明没有可打印内容,退出程序 MsgBox "Microsoft Excel 未发现任何可以打印的内容", 0 + 48
Exit Sub
End If
and heroic sacrifice, at the age of 22. Chen Youmin, also known as Chen Ziyun, Yan Zhen people. County administrative team members actively engaged in anti-Japanese propaganda. The party in April 1940. 52 Group 2 became the new six-Division, 18 brigade
myBottonNum = MsgBox(myPrompt, 1 + 48) '提示用户取出纸张,确认后继续打印
If (myBottonNum = 1) Then
For j = 2 To Pages Step 2
ActiveSheet.PrintOut From:=j, To:=j '打印偶数页
Next j
End If
End Sub
---------------------------------------
按Alt+Q返回到工作表窗口,单击菜单“工具”?“自定义”,在弹出的自定义对话框中选择“命令”选项卡,在命令选项卡中选择“宏”?“自定义按钮”。
拖动自定义按钮到菜单栏或工具栏上,右击刚刚拖到菜单栏或工具栏上自定义按钮然后再“命名”后面输入“打印奇数页”(注意此时不要关闭自定义对话框),然后关闭自定义对话框。
单击按钮,在弹出的“指定宏”对话框中选择我们刚才创建的宏(Sub by())。 添加“打印偶数页”按钮同上。只是在“指定宏”对话框中选择(Sub cy())宏。 至此命令基本添加完毕~
关闭并保存工作簿
打开EXCEL工作簿,单击刚才添加的打印奇数页按钮,程序先打印预览,如有问题先按取消,程序将退出,并不打印,如确定打印请按确定确定按钮程序将会自动打印奇数页;打印完毕后,再按打印偶数页按钮,程序也先打印预览,如有问题按取消按钮,程序将退出,并不打印,按确定按钮程序将自动打印偶数页。 另:红色部分语句为设置奇偶页页边距不同,本人水平有限,不能自动设置奇偶页不同的页边距,只好用这个笨
,在Microsoft Visual Basic编辑器中直接修改,敬请高手指点。
and heroic sacrifice, at the age of 22. Chen Youmin, also known as Chen Ziyun, Yan Zhen people. County administrative team members actively engaged in anti-Japanese propaganda. The party in April 1940. 52 Group 2 became the new six-Division, 18 brigade