如何将printarea调整为一张纸

时间:2016-10-24 13:04:55

标签: excel vba

我在一张纸上定义了一个打印区域并将其打印出来。 但是这个区域比一张纸要大,所以它会打印成4页。 我希望将所有内容放在一个页面中。所以我尝试了代码:

Sub PrintTable()    

With ActiveWorkbook.Sheets("myTable").PageSetup
    .PrintArea = "$A$1:$L$55"
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    .PrintErrors = xlPrintErrorsDisplayed

End With
End Sub

但它不起作用,我不知道要纠正哪个部分。我已经使用了“记录宏”,或许我删除了一些重要的行。所以,如果你有一些想法,请留言。

2 个答案:

答案 0 :(得分:2)

修改this explanationZoom必须先设置为False。尝试:

.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1

代替您现在拥有的两条.FitToPages行。

原始回答

this forum post,尝试

.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False

.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = False

代替您现在拥有的两条.FitToPages行。

答案 1 :(得分:2)

我自己尝试过,这样做有效:

   Application.PrintCommunication = False
   With ActiveSheet.PageSetup
       .FitToPagesWide = 1
       .FitToPagesTall = 1
   End With
   Application.PrintCommunication = True

不设置

 Application.PrintCommunication

为假和真,它不起作用。你能试试吗?