我录制了一个宏来自动格式化我每周发送的 Excel 2010 中的报告。部分宏调整页面设置属性,包括将布局更改为横向和合法大小。
我可以在我的计算机上运行它,因为我的打印机将 Legal 尺寸的纸张作为默认值之一。但是,有些人在使用 Legal 尺寸纸张打印之前必须手动调整打印机,并且出现错误。
运行时错误“1004”:对象“_Application”的方法“PrintCommunication”失败
当我调试它突出显示Application.Printcommunication = True
.
当我更改为Application.PrintCommunication = False
宏时,它并没有完全按照它的构建方式格式化它(例如,Zoom 保持在 100%)。
我认为一种解决方法可能是在运行宏之前将其默认打印机更改为 Nitro Pro(类似于 Adobe Pro),但错误仍然存在。
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