《EXCELVBA中如何实现不同的表自动选择不同的打印机进行打印复习进程.doc》由会员分享,可在线阅读,更多相关《EXCELVBA中如何实现不同的表自动选择不同的打印机进行打印复习进程.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。EXCELVBA中如何实现不同的表自动选择不同的打印机进行打印-EXCELVBA中如何实现不同的表自动选择不同的打印机进行打印第1楼:萍水相逢在一个系统里,报表可能有不同的格式,得用不同的打印机(针式或激光),同样纸张也会有不同的要求,请问如何设置?如何对打印机进行控制?最好给个例子?要不思路也可以,不知能否实现?如“明细表”用针式打印机,其它表用激光打。或是在打印明细表时,出现一个选择打印机的对话窗。第2楼:萍水相逢我找到一段代码谁能帮我改一下,谢谢Sub更改打印机()Dimprintyb(20),d
2、uankou(20)Fori=1To20printyb(i)=:duankou(i)=Nextii=1strComputer=.:s=SetobjWmi=GetObject(winmgmts:&strComputer&rootcimv2)SetMyPrinters=objWmi.ExecQuery(Select*fromWin32_Printer)ForEachoblistInMyPrintersprintyb(i)=oblist.Name:i=i+1NextIfprintyb(1)=ThenMsgBox你没有安装打印机吧?请检查!ExitSubEndIfSetwshShell=CreateO
3、bject(WScript.Shell)Forj=1Toi-1duankou(j)=Right(wshShell.RegRead(HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionDevices&printyb(j),5)NextjIfi=2ThenMsgBox你只安装有一台打印机,还能更改吗?ElseIfi=3ThenIfActivePrinter=printyb(1)&在&duankou(1)ThenActivePrinter=printyb(2)&在&duankou(2)ElseActivePrinter=printyb(1
4、)&在&duankou(1)EndIfElseIfi3ThenForj=1Toi-1s=s&j&printyb(j)&vbCrLfNextjt=InputBox(你安装有两个以上打印机,请输入你想指定的打印机序号:&vbCrLf&s,t)Ift=Thent=0DoUntilprintyb(t)t=InputBox(你输入的序号有错!请重新输入打印机的序号:&vbCrLf&s,t)Ift=Thent=0LoopActivePrinter=printyb(t)&在&duankou(t)EndIfMsgBox现在默认打印机是:&Mid(ActivePrinter,1,Len(ActivePrinter)-8)EndSub改成自动选择第3楼:美猴王PrivateSubWorkbook_BeforePrint(CancelAsBoolean)IfActiveSheet.Name=明细表ThenActivePrinter=针式打印机的名子elaeActivePrinter=激光打印机的名子EndIfEndSub第4楼:萍水相逢谢谢,学会了,这招非常好用!-