Excel-Makro: Application.Printcommunication = True (führt zu Fehler)
Da bin ich nicht ganz vertraut mit Makros, die ich aufgezeichnet, ein makro, auto-format einen report in Excel 2010, dass ich zu senden, um Menschen jede Woche. Teil des Makros passt die Seite Setup-Eigenschaften, die auch ändern das layout, um die Landschaft und Legal. Ich kann es ganz gut auf meinem computer, da mein Drucker hat Papier im Legal-Format als eine der Standardeinstellungen. Jedoch, einige Leute haben, um manuell passen Sie Ihren Drucker vor dem drucken auf Rechtliche Papierformat, und Sie werden immer ein Fehler. Der zurückgegebene Fehler ist: Laufzeitfehler '1004': die Methode 'PrintCommunication' des Objekts '_Application' ist fehlgeschlagen
Wenn ich Debuggen highlights der Anwendung.Printcommunication = True Zeile. Wenn ich ändern Sie den code der Anwendung.PrintCommunication = False, wird das makro nicht vollständig formatieren es so, wie es gebaut wird (z.B., Zoom bleibt bei 100%). Ich dachte, ein workaround könnte sein, ändern Sie Ihre Standard-Drucker Nitro Pro (ähnlich wie in Adobe Pro), bevor das makro ausgeführt, aber der Fehler weiterhin besteht. Jedes feedback wird sehr geschätzt!
Sub Auto_Open()
'
' Macro2 Macro
'
'
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1"
.LeftMargin = Application.InchesToPoints(0.17)
.RightMargin = Application.InchesToPoints(0.17)
.TopMargin = Application.InchesToPoints(0.62)
.BottomMargin = Application.InchesToPoints(0.48)
.HeaderMargin = Application.InchesToPoints(0.17)
.FooterMargin = Application.InchesToPoints(0.17)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 1200
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperLegal
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 60
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
End With
Application.PrintCommunication = True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("N2:O2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("L1").Select
Columns("B:B").ColumnWidth = 10.86
Columns("D:D").ColumnWidth = 18.86
Columns("E:E").ColumnWidth = 13.43
Columns("F:F").ColumnWidth = 11.29
Columns("F:F").ColumnWidth = 19.29
Columns("G:G").EntireColumn.AutoFit
Range("H1").Select
ActiveWindow.SmallScroll Down:=-33
Range("I1").Select
Range("G1").Select
Columns("H:H").ColumnWidth = 13
Columns("I:I").ColumnWidth = 18.71
Columns("J:J").ColumnWidth = 19.86
Columns("K:K").ColumnWidth = 13.57
Columns("L:L").ColumnWidth = 11
Columns("L:L").ColumnWidth = 11.43
Columns("M:M").ColumnWidth = 12.71
Columns("M:M").ColumnWidth = 15.86
Columns("N:N").ColumnWidth = 41.86
Columns("O:O").ColumnWidth = 18.57
Columns("O:O").ColumnWidth = 28.86
Columns("O:O").ColumnWidth = 42
Columns("L:L").ColumnWidth = 12.71
Range("K2:L2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "$#,##0"
ActiveWindow.SmallScroll Down:=-30
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
Rows("1:1000").EntireRow.AutoFit
Range("B1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
ActiveWindow.Zoom = 75
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Range("E2").Select
ActiveWindow.SmallScroll Down:=-6
ActiveWindow.LargeScroll ToRight:=-1
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "&""-,Bold""&12Weekly Staffing Summary Request &D"
.RightHeader = ""
.LeftFooter = "&D"
.CenterFooter = "&P"
.RightFooter = "&F"
End With
End Sub
.Papersize
um zu sehen, ob der code ausgeführt, ohne es (ich denke, dass ist das wahre Problem, und es ist nur manifestiert, wenn Sie schalten Sie den Drucker die Kommunikation und die Einstellungen geliefert, um den Drucker-Treiber)? Auch funktioniert es für Sie, Ihre Drucker für Juristische drucken, bevor Sie das Skript ausführen?Ich habe nicht versucht, danke für den Vorschlag, Karl, aber ich bin noch immer der gleiche Fehler nach kommentieren Sie es aus. Es wird nicht ausgeführt, wenn der Drucker über setup für den Juristischen Druck. Und mein workaround mit dem Versuch, den Nitro PDF als Standard-Drucker hat nicht funktioniert entweder. Ich selbst habe versucht, die Standard-Papiergröße im Nitro PDF Legal sein. Vielen Dank für alle anderen Vorschläge, die Sie haben könnten!
Ich denke, dass ich es herausgefunden. Ich denke, es war nicht die
.Papersize
schließlich. Ich ging Zeile für Zeile in die Seite Setup-und auskommentiert, bis ich herausfand, dass es die .PrintQuality = 1200
verursacht das Problem. Es läuft jetzt unabhängig davon, ob die Drucker-setup-Papier im Format " Legal oder nicht, und funktioniert auch perfekt mit Nitro Pro als Standard-Drucker! Vielen Dank, dass Sie mir das zweite Auge zu zeigen mich in die richtige Richtung!Froh, dass die Frage geholfen.
InformationsquelleAutor user2904258 | 2013-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Linie
.PrintQuality = 1200
zog in aus dem aufgezeichneten makro und die den Fehler verursacht wurde. Entfernt diese Zeile und arbeitete unabhängig von der Drucker und arbeitete sogar mit Nitro-PDF als Standard-Drucker.InformationsquelleAutor user2904258
Etwas späte Antwort offensichtlich, aber ich hatte heute den gleichen Fehler. Ich problem war, dass mein computer konnte keine Verbindung mit dem Standard-Drucker.
Ich habe ihn an nur einem PDF-Drucker, die intern in dem computer, und dann klappte auch alles OK!
InformationsquelleAutor Zeth
Fügen Sie diese Zeile am oberen Rand & jedes Ding wird in Ordnung sein:
InformationsquelleAutor user8074182
Kann man mit "on error resume next" wie folgt :
dann :
Ist es nicht notwendig, schalten Sie PrintCommunication wenn Sie wollen nur die eine Seite einrichten. Aber der Unterschied gesehen werden kann, der Zeitpunkt der Ausführung : die Ausführung ist schneller, die mit ausschalten des Druckers Kommunikation.
Ich habe Excel 2010, und irgendwann PrintCommunication funktioniert, mal nicht. Ich habe nicht herausfinden, warum, bis jetzt!
InformationsquelleAutor D. O.