针对每个sheet(即工作表)写一个宏就能实现你所要求的。就提操作如下:
1、录制一个宏:
(1)打开excel文件并激活(即打开)一个工作表,如sheet1,
依次点击工具栏“工具”、宏、录制宏
(2)在打开的新工作窗口中,将“宏名”修改为 prt1,并点击确定按钮开始录制
按住ctrl+p启动打印,选择好想设置的默认打印机,然后确定
再依次点击工具栏“工具”、宏、停止录制
取消打印
(3)将步骤(2)在按顺序操作一遍,区别是:宏名改为prt2,打印机选择sheet2工作表需要的打印机
有几个工作表就如步骤(2)(3)那样操作几遍
2、(1)打开VBA编辑器(打开步骤如下图:)
(2)打开模块1
我们其实想要的只是右侧两个画红线的部分,就是那两个不同的打印机名称(注意打印机名后面的位置)
(3)双击VBA编辑器窗口左侧的“sheet1”,如下图
点击三角符号,将“通用”更换成worksheet、将“声明”替换成“selectionchange"
将prt1中的
Application.ActivePrinter = "Microsoft XPS Document Writer 在 Ne00:"
复制到新模块中,保存一下
(4)按照(3)中的操作,将sheet2、sheet3、、中添加上类似模块
然后保存并关闭VBA编辑器。
3、回到excel工作簿中,打印试一下吧!!!
提示:若是没有实现打印机自动更换,别着急,你只需要在打印每张工作表前先进行表格编辑(最简单的”编辑“动作就是双击任意无数据单元格)
这个估计很难实现,本身默认打印机是针对整个系统的所有软件而言的,而不是仅仅针对EXCEL。
如果安装的有打印机,右击打印机图标,选择 设为默认打印机就可以了
每张表里放一个文本框,设置属性为非打印对像,然后,把每一个文本框输入"单击打印"四个字,然后右键文本框,并指定宏,表1的文本框指定为宏1,表2的文本框指定宏2.下面是宏的模版,把打印机的型号,可以改为你想默认的那种型号即可.以后,要打印表1的,只要单击那个文本框即可.
Sub 宏1()
Application.ActivePrinter = "Canon iR2016 UFRII LT 在 Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Canon iR2016 UFRII LT 在 Ne01:", Collate:=True
End Sub
Sub 宏2()
Application.ActivePrinter = "Canon iP1800 series 在 Ne02:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Canon iP1800 series 在 Ne02:", Collate:=True
End Sub
说明:看不懂也没事,录制一个宏,用CTRL+P来指定你要的打印机的宏,即可.一录制,然后就懂了.