打开需要双面打印的excel表格
点菜单,进入宏编辑界面
增加宏模块
把下面的代码复制到右边空白代码处:Sub 双面或奇偶页打印() On Error GoTo err Dim x As Integer, pagebegin As Integer, pageend As Integer, pagecount As Integer pagebegin = InputBox('请录入打印开始页:', '打印设置', 1) If (pagebegin = 0) Then Exit Sub pageend = ExecuteExcel4Macro('Get.Document(50)') x = InputBox('请录入打印结束页', '打印设置', pageend) If (x = 0) Then Exit Sub 'err.Raise 1, '测试异常' Dim str_test str_test = '' pagecount = Int((x - pagebegin) / 2) For i = 0 To pagecount currpage = 2 * i + pagebegin 'str_test = str_test & 2 * i + pagebegin & ',' ActiveWindow.SelectedSheets.PrintOut From:=currpage, To:=currpage Next i '最后一页 'If ((x - pagebegin) Mod 2) = 0 Then str_test = str_test & x & ',' '把纸张向自己面部方向翻过来,放入纸箱 If (MsgBox('请将打印出的纸张反向装入纸槽中', vbOKCancel, '打印另一面') = vbCancel) Then Exit Sub str_test = str_test & Chr(10) For j = 0 To pagecount '奇数纸张的最后一页计算会超过最大页数,不用打印 If (((x - pagebegin) Mod 2) = 0 And j = pagecount) = False Then currpage = 2 * j + pagebegin + 1 'str_test = str_test & 2 * j + pagebegin + 1 & ',' ActiveWindow.SelectedSheets.PrintOut From:=currpage, To:=currpage End If Next j 'MsgBox str_test Exit Suberr: MsgBox '打印错误,请确认打印机及打印机驱动是否安装正常!'End Sub
点击宏执行双面打印
第一个窗口录入开始打印的页面(默认第一页),第二个窗口录入最后打印的页数(默认最后一页)
在出现下图时,把已经打印了奇数页的纸张调过来再打印偶数页