2016-11-26 5 views
0

Мне нужно сделать очень простой макрос в excel, где я использую кнопку для печати разных листов (X & Y) на двух разных принтерах (PrinterX & Printer Y). Код, который я использовал, был;Печать не работает excel vba

Что я понимаю, так это то, что он печатает как на одном принтере PrinterX! Что нужно сделать, чтобы распечатать X на PrinterX и Y на принтере?

application.activeprinter не работает и дает ошибку!

Заранее благодарен!

+0

код, который вы загрузили будет возвращать ошибки, то вторая строка должна быть 'PrinterX = activeworkbook.Worksheets ("Принтеры"). Range ("B1"). Value'. То же самое для строки до последней, это должно быть «PrinterY = Activeworkbook.Worksheets (« Принтеры »). Диапазон (« B2 »). –

ответ

0

Убедитесь, что на рабочем листе «Принтеры» установлено 2 разных принтера, в Range("B1") и Range("B2").

Код

Option Explicit 

Sub PrinteronDifferentPrinters() 

Dim PrinterX As String 
Dim PrinterY As String 

PrinterX = ActiveWorkbook.Worksheets("Printers").Range("B1").Value 
Activerprinter = PrinterX 
ActiveWorkbook.Worksheets("X").PrintOut 

PrinterY = ActiveWorkbook.Worksheets("Printers").Range("B2").Value 
Activerprinter = PrinterY 
ActiveWorkbook.Worksheets("Y").PrintOut 

End Sub 
0

вы могли бы использовать цикл, чтобы не повторить тот же код дважды;

Sub main() 
    Dim iCell As Long 

    With Worksheets("Printers").Range("B1:B2") '<--| reference range with printers 
     For iCell = 1 To .Count '<--|loop through it 
      ActivePrinter = .Cells(iCell, 1).Value '<--| set activeprinter to curent cell value 
      Worksheets(Array("X", "Y")(iCell - 1)).PrintOut '<--| define array with corresponding wanted sheets names and printout current one 
     Next iCell 
    End With 
End Sub 
Смежные вопросы