简体   繁体   English

从Excel VBA自动选择打印机纸盘以打印Word文档

[英]Choose Printer Tray automatically From Excel VBA to print Word Document

I am trying to print Word Document From Excel I want to choose printer tray to print word document in default printer. 我正在尝试从Excel打印Word文档我想选择打印机托盘以在默认打印机中打印Word文档。 First 2 pages in Tray one (Letter Heads) and 3rd to 5th page in Tray Two (A4 Sheets) Using excel VBA. 使用excel VBA,纸盘一中的前2页(信头)和纸盘二中的第3页至第5页(A4页)。

Below code is working fine to print in default printer and tray. 下面的代码可以正常工作在默认打印机和纸盘中进行打印。 Help me to Choose Trays 帮我选择纸盒

'Print in letter head:- Choose Tray one

and

'Print Other pages in A4:- Choose Tray Two

Printer details: 打印机详细信息:

*Network Printer *Hp Laser printer 5200 dtn *网络打印机* HP激光打印机5200 dtn

Dim directory As String, fileName As String, ans As String, i As Integer
            Dim objWord As Object
            Dim intpage As Integer, intcopies As Integer, intnrml As Integer

            Set objWord = CreateObject("Word.Application")
            objWord.Visible = True

            ' path to the folder
            directory = "C:\Users\bharath.a.raj.DIR\Desktop\Print\"
            fileName = Dir(directory & "*.doc*") ' Open Multiple Word Docs Both .doc and .docx
            Do While fileName <> ""
            objWord.Documents.Open (directory & fileName)

            On Error Resume Next
           '
            intcopies = CInt(InputBox("How many copies?"))
            intpage = 1 'Letter head page no.
            intnrml = 3 'A4 page no.
            On Error GoTo 0

            If intpage * intcopies <> 0 Then
                For i = 1 To intcopies ' Loop to print next page of uer Choice Note: simplex is not working in my Office, Default Duplex
                    'Network Printer :- HP Laser Printer 5200dtn
                    'Print in letter head:- Choose Tray one
                    objWord.PrintOut Range:=4, Pages:=CStr(intpage) '1st page
                    intpage = intpage + 1
                    objWord.PrintOut Range:=4, Pages:=CStr(intpage) '2nd page
                    intpage = 1
                    'Print Other pages in A4:- Choose Tray Two
                    objWord.PrintOut Range:=4, Pages:=CStr(intnrml) '3rd page
                    intnrml = intnrml + 1
                    objWord.PrintOut Range:=4, Pages:=CStr(intnrml) '4th page
                    intnrml = intnrml + 1
                    objWord.PrintOut Range:=4, Pages:=CStr(intnrml) '5th page
                    intnrml = 3

                Next
            Else
                MsgBox "sorry, wrong page or copies, try again"
            End If
               ' Next
            objWord.Documents.Close
                ' set file to next in Dir
            fileName = Dir()
            Loop

We use a really great utility called Tray Selector which you can download from http://us.trayselector.com and try for free. 我们使用了一个非常好的工具,叫做“纸盘选择器”,您可以从http://us.trayselector.com下载该工具并免费试用。 You can set up one click buttons to print to any printer and tray combination and even call these buttons using VBA macros. 您可以设置一键式按钮以打印到任何打印机和纸盘组合,甚至可以使用VBA宏调用这些按钮。 It's been very useful in our law firm. 这在我们的律师事务所非常有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM