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
Haben Sie versucht, auskommentieren .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

Schreibe einen Kommentar