如何用vba把所有excel工作表的打印调整为1页宽?

在打印excel工作表内容时,如果从左到右的数据内容偏多,打印时往往会将同一行的数据内容打印在不同的页面。

这时候,我们往往通过缩放比例来使从左到右的所有数据内容打印在一个页面上。

在excel中可以通过“页面布局”选项卡下的“调整为合适大小”工作组进行设置,如下图所示:

在vba中,可以通过设置PageSetup对象的ZoomFitToPagesWide 、FitToPagesTall 3个属性来设置工作表的打印缩放比例以及是否调整为1页宽或者1页高。

以下vba代码将所有excel工作表调整为1页宽打印:

Sub QQ1722187970()
    Excel.Application.ScreenUpdating = False
    Excel.Application.Calculation = xlCalculationManual
    Dim oWK As Worksheet
    For Each oWK In Excel.ThisWorkbook.Worksheets
        With oWK.PageSetup
            '缩放要调整为False,FitToPagesWide和FitToPagesTall才会生效
            .Zoom = False
            '调整为1页宽
            .FitToPagesWide = 1
            '设置为False,将自动调整为N页高
            .FitToPagesTall = False
        End With
    Next
    Excel.Application.ScreenUpdating = True
    Excel.Application.Calculation = xlCalculationAutomatic
End Sub
       

发表评论