Excel 使用VBA代码打印与使用UI不同

Excel 使用VBA代码打印与使用UI不同,excel,vba,Excel,Vba,我的Excel文件有问题。我从其他文件复制图形并将它们粘贴为图纸,因此它们现在是“图表图纸”。所有这些都很好,但问题在于打印时。我有一个页面设置宏,可以设置页边距和页脚,如果我使用“打印”按钮打印,结果会很好。图形很好地居中,四周空白相等,打印时与打印预览中显示的一样。问题是当我使用以下任一代码从VBA打印时: Sheets("83IO").Activate ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

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

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

这些打印输出的图表偏侧,底部和右侧的空白加倍。更改页边距似乎不会改变这些打印输出,我不知道该怎么办

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


感谢您提供的帮助。

尝试使用
.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

我得到运行时错误1004:应用程序定义的或对象定义的错误,在发出
.Printout
之前,在同一过程中进行页面设置时会发生什么情况?我添加了一个对代码的调用,该调用在print宏中正确执行所有格式设置,结果相同。我已经想到了一个解决办法,但我不知道该怎么做。我想挑选这些工作表,在每张工作表之间插入一张空白工作表,并生成打印预览。插入空白工作表会有什么帮助?我无法控制双面打印,因此插入空白页会为我解决双面打印问题。这不起作用,我相信这是因为我的图表是工作表,它们是不可选择的对象。使用它会让我“指定集合的索引超出范围。”
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