ich den folgenden Code haben, der gut arbeitet:Wählen Sie Zellbereiche und dann drucken
Sheets("File1").Select
Range("B2:J56").Select
Selection.PrintOut Copies:=1, Collate:=True
Aber ich mit den folgenden Formaten mehrere Bereiche und die Seiten sollten drucken müssen erfüllen:
- jede Auswahl sollte ein A4-Papier passen
- doppelseitig
- Spalten auf einer Seite angepasst, so dass der Inhalt passt vollständig in die Seitenbreite
- Druckqualität von 600 dpi
- Rand zentriert (horizontal und vertikal)
- Seiten sollten einen Header „Diese Daten wurden vor einem Jahr gesammelt“ umfassen
ohne Erfolg im Internet Nach dem Kampf, ich habe ein Makro aufgezeichnet, aber es gibt immer noch viele Fehler, wenn ich versuche, das Code-Snippet, speziell in der Zeit Ausführungsfehler # 1004 in Zeile ActiveSheet.PageSetup.PrintArea = "$B$2:$J$56;$L$2:$T$37;$V$2:$AH$37"
und drucken Kommunikationsmethode fehlgeschlagen.
[EDIT]: Lösung unter
implementiertSub RECORDED_Macro_Print_test()
Application.ScreenUpdating = False
Sheets("File1").Select
Range("B2:J83,L2:T37,V2:AO92").Select
Range("V2").Activate
ActiveSheet.PageSetup.PrintArea = "$B$2:$J$83;$L$2:$T$37;$V$2:$AO$92" ' <----- Fix it by replacing ';' by ',' as suggested by the user 'Siva'
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "" ' <----- Not necessary
.PrintTitleColumns = "" ' <----- Not necessary
.LeftHeader = "" ' <----- Not necessary
.CenterHeader = "This data was collected a year ago"
.RightHeader = "" ' <----- Not necessary
.LeftFooter = "" ' <----- Not necessary
.CenterFooter = "" ' <----- Not necessary
.RightFooter = "" ' <----- Not necessary
.LeftMargin = Application.InchesToPoints(0.511811023622047)
.RightMargin = Application.InchesToPoints(0.511811023622047)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.78740157480315)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = "" ' <----- Not necessary
.EvenPage.CenterHeader.Text = "" ' <----- Not necessary
.EvenPage.RightHeader.Text = "" ' <----- Not necessary
.EvenPage.LeftFooter.Text = "" ' <----- Not necessary
.EvenPage.CenterFooter.Text = "" ' <----- Not necessary
.EvenPage.RightFooter.Text = "" ' <----- Not necessary
.FirstPage.LeftHeader.Text = "" ' <----- Not necessary
.FirstPage.CenterHeader.Text = "" ' <----- Not necessary
.FirstPage.RightHeader.Text = "" ' <----- Not necessary
.FirstPage.LeftFooter.Text = "" ' <----- Not necessary
.FirstPage.CenterFooter.Text = "" ' <----- Not necessary
.FirstPage.RightFooter.Text = "" ' <----- Not necessary
End With
Application.PrintCommunication = True ' <----- Remove this line to fix it. This is an error issue
Selection.PrintOut Copies:=1, Collate:=True
End Sub
Um das Makro ich im Grunde die Bereiche alles, was ich durch Halten der Shift-Taste erforderlich ausgewählt haben aufzeichnen, dann definiert ich den Druckbereich, dann Druck gedrückt, hat alle Einschränkungen im Dialogfeld und voilà angegeben. Wie man es zur Arbeit bringt?
OK ersetzen. Vier Stunden + schauen, um dieses Problem zu lösen, und ich bekomme eine -1? Wenn die Antwort so einfach zu sein scheint, informieren Sie bitte die Lösung. Ich wäre wirklich großartig. –