设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4339|回复: 8
打印 上一主题 下一主题

[其它] EXCEL文档打印设置

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-1 15:29:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家知道,WORD文档打印时,打印设置可进行单双页(奇偶页)打印选择,但同一打印机,在打印EXCEL文档时却无法进行奇偶页打印设置,请问,如何解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-5-2 11:16:38 | 只看该作者
2007版和2010版可以设置。
2003版需要用代码了。
3#
发表于 2011-5-2 16:35:39 | 只看该作者
Sub Excel双面打印()
    On Error Resume Next
    x = ExecuteExcel4Macro("Get.Document(50)")
    For I = 1 To Int(x / 2) + 1
        ActiveWindow.SelectedSheets.PrintOut From:=2 * I - 1, To:=2 * I - 1
    Next I
    MsgBox "放好纸回车继续打印另一面"
    For j = 1 To Int(x / 2) + 1
        ActiveWindow.SelectedSheets.PrintOut From:=2 * j, To:=2 * j
    Next j
End Sub

4#
 楼主| 发表于 2011-5-2 17:28:46 | 只看该作者
谢谢两位指教,我先试用!
5#
 楼主| 发表于 2011-5-2 17:38:28 | 只看该作者
3楼的不行,提示子过程或函数未定义, ExecuteExcel4Macro反相显示,加入Dim x, i As Integer也不行,如何办?
6#
发表于 2011-5-2 22:52:27 | 只看该作者
O(∩_∩)O~,余方方童鞋漏掉了宏表函数(这部分内容实在太多了,改天再写两篇教程)那一部分了。正确的做法是:
第一步、建立宏表函数,按下Ctrl+F3,或者插入\名称\定义(2003版本),2007版本则在公式选项卡里。输入名称,例如PrintPages:
=Get.Document(50)
第二步、按下Alt+F11进入VBE界面,插入3L的代码。我这里改了下:
  1. Sub Excel双面打印()
  2.     On Error Resume Next
  3.     Dim x As Long
  4. '定义并激活工作表才能执行宏表函数
  5.     Dim wk As Worksheet
  6.     wk.Activate
  7.     x = ExecuteExcel4Macro("get.document(50)")
  8.     For i = 1 To Int(x / 2) + 1     ActiveWindow.SelectedSheets.PrintOut From:=2 * i - 1, To:=2 * i - 1
  9.     Next i
  10.     MsgBox "放好纸回车继续打印另一面"
  11.     For j = 1 To Int(x / 2) + 1    ActiveWindow.SelectedSheets.PrintOut From:=2 * j, To:=2 * j
  12.     Next j
  13. End Sub
复制代码
7#
 楼主| 发表于 2011-5-3 09:37:52 | 只看该作者
谢谢roych的热心指教!高手!
6楼的办法可以,不过,代码有两处要分行:
Sub Excel双面打印()

    On Error Resume Next

    Dim x As Long

'定义并激活工作表才能执行宏表函数

    Dim wk As Worksheet

    wk.Activate

    x = ExecuteExcel4Macro("get.document(50)")

    For i = 1 To Int(x / 2) + 1
    ActiveWindow.SelectedSheets.PrintOut From:=2 * i - 1, To:=2 * i - 1

    Next i

    MsgBox "放好纸回车继续打印另一面"

    For j = 1 To Int(x / 2) + 1
    ActiveWindow.SelectedSheets.PrintOut From:=2 * j, To:=2 * j

    Next j

End Sub
期望宏表函数教程的早日出现!
8#
发表于 2011-5-3 14:19:09 | 只看该作者
本帖最后由 roych 于 2011-5-3 15:07 编辑

实际上不用分得很开的,只是粘贴代码时,俺不小心把For循环条件和执行语句放在一块儿了,纯属失误,不好意思。
此外,建议最好做成一个函数,然后再调用两次;或者第二次执行时先弹出确认对话框,修改后代码如下:
  1. Sub Excel双面打印()
  2.    On Error Resume Next
  3.     Dim x As Long
  4. '定义并激活工作表才能执行宏表函数
  5.     Dim wk As Worksheet
  6.     wk.Activate
  7.     x = ExecuteExcel4Macro("get.document(50)")
  8.     For i = 1 To Int(x / 2) + 1
  9.     ActiveWindow.SelectedSheets.PrintOut From:=2 * i - 1, To:=2 * i - 1
  10.     Next i
  11.     If MsgBox("现在开始打印偶数页,请放好纸张后点击是执行", vbInformation + vbYesNoCancel, "") = vbYes Then
  12.     For j = 1 To Int(x / 2) + 1
  13.     ActiveWindow.SelectedSheets.PrintOut From:=2 * j, To:=2 * j
  14.     Next j
  15.     End If
  16. End Sub
复制代码
9#
 楼主| 发表于 2011-5-3 14:54:08 | 只看该作者
再次谢谢roych的指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-1 10:46 , Processed in 0.111161 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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