使用VBA代码进行打印与使用UI不同

时间:2015-09-29 17:15:34

标签: excel excel-vba vba

我的Excel文件出现问题。我正在从其他文件复制图形并将它们作为工作表粘贴,因此它们现在是“图表工作表”。所有这一切都很好,但问题出在打印时。我有一个页面设置宏,用于设置页边距和页脚,如果我使用打印按钮将其打印出来就很好了。图形很好地居中,白色空间四周相等,打印方式与打印预览中显示的相同。问题是当我使用以下任一代码从VBA打印时:

Sheets("83IO").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

Sheets("83IO").Activate
ActiveChart.ChartArea.Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

这些打印输出将图表放在一边,并将底部和右侧的空白加倍。改变边距似乎并没有改变这些打印输出,我不知道该怎么做。

我尝试将IgnorePrintAreas设置为true,因为这些页面只是图形,结果是相同的。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用 .PageSetup.PrintArea

Application.ScreenUpdating = False
With Sheets("83IO")

    .PageSetup.PrintArea = .Shapes(1).TopLeftCell.Address & ":" & _
                           .Shapes(1).BottomRightCell.Address

    With .PageSetup
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Zoom = 100
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    .PrintPreview
End With
Application.ScreenUpdating = True