设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] EXCEL文档打印设置

[复制链接]
1#
发表于 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
复制代码
2#
发表于 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-21 18:54 , Processed in 0.084371 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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