我有以下代码可以正常工作:
Sheets("File1").Select
Range("B2:J56").Select
Selection.PrintOut Copies:=1, Collate:=True
但我需要打印多个范围,页面应符合以下格式:
在互联网上挣扎无济于事之后,我录制了一个宏,但是当我尝试重现代码片段时仍然存在很多错误,
特别是时间执行错误#1004 在行ActiveSheet.PageSetup.PrintArea = "$B$2:$J$56;$L$2:$T$37;$V$2:$AH$37"
和打印通信方法失败。
[编辑]:解决方案在
下面实施 Sub 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
要记录宏我已经基本上按住了SHIFT键选择了我需要的所有范围,然后我定义了打印区域,然后按下了print,在对话框中指定了所有约束并vo。如何让它工作?
答案 0 :(得分:1)
替换您的代码行
ActiveSheet.PageSetup.PrintArea = "$B$2:$J$56;$L$2:$T$37;$V$2:$AH$37"
带
ActiveSheet.PageSetup.PrintArea = "$B$2:$J$56,$L$2:$T$37,$V$2:$AH$37"
我已经在我的机器上尝试过了,并且替换
后该行没有出现任何错误