我录制了一个宏来设置打印机设置。我提示用户是否要打印当前报告。根据他们运行的报告,我将Header变量发送到该打印机设置代码。
如果我“运行”此命令,则报告标题不会从一个报告更改为下一个报告。 如果我单步执行此代码(f8)到.CenterHeader = gblReportHeader经过2 -3行的点,然后按f5,则报告标题会按我的期望进行更改。
当我注释掉Application.PrintCommunication = line(s)时,printpreview语句将刷新旧的报告标题,然后显示正确的报告和标题。
有什么想法吗?
Sub PrintSettings(PrintZone)
' PrintSettings Macro
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = PrintZone
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = gblReportHeader
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
' .PrintHeadings = False
' .PrintGridlines = False
' .PrintComments = xlPrintNoComments
' .CenterHorizontally = False
' .CenterVertically = False
.Orientation = xlPortrait
' .Draft = False
.PaperSize = xlPaperLegal
' .FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
' .Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintErrors = xlPrintErrorsDisplayed
' .OddAndEvenPagesHeaderFooter = False
' .DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
End With
Application.PrintCommunication = True
' Application.Dialogs(xlDialogPrinterSetup).Show
ActiveSheet.PrintPreview
End Sub
答案 0 :(得分:0)
我已经解决了我的问题!
我注释了我认为不需要的With ActiveSheet.PageSetup语句中的每一行。这解决了我的问题。然后,我开始删除注释行,直到将问题范围缩小到5行。
.LeftHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
我继续一次注释掉这些内容,发现.CenterHeader = gblReportHeader语句之后的.RightHeader =“”是令人反感的代码行。
我不完全理解为什么,但是由于这些行不是必需的,因此我没有消除它们的余地,因此我的代码可以按预期工作。
谢谢那些提供建议的人。