Excel Vba代码,用于在使用range.exporttopdf方法时将图表对象保留在一张图纸上

Excel Vba代码,用于在使用range.exporttopdf方法时将图表对象保留在一张图纸上,excel,vba,Excel,Vba,我有将范围和数据透视图输出为pdf的代码。此时,我正在努力将图表元素放在一页上,而不是将其截断。这是我的密码: With nxraySheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = False .Orientation = xlLandscape .Zoom = 85 .LeftMargin = 0 .RightMargin = 0

我有将范围和数据透视图输出为pdf的代码。此时,我正在努力将图表元素放在一页上,而不是将其截断。这是我的密码:

With nxraySheet.PageSetup
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .Orientation = xlLandscape
        .Zoom = 85
        .LeftMargin = 0
        .RightMargin = 0
        .CenterHorizontally = True
        End With

        nxraySheet.Columns("A:H").HorizontalAlignment = xlCenter
        nxraySheet.Range("A:H").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:="Blah Blah Blah\Test Location\AVITEST\PDFs\X-Rays\" & "X-Ray-" & facilityList.Cells(i, 1) & "-" & Format(Date, "mm-dd-yy") & ".xlsx", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False

[]

在Excel中,不幸的是,您不能告诉图表作为一个整体打印(类似于“Excel,请将图表上移或下移几行以全部打印”)

以下是一些选项:

整体缩放

您不能同时拥有
FitToPagesWide=1
Zoom=85
。这不会引发错误,但这些设置相互冲突,缩放因子获胜。 因此,您可以选择较低的缩放系数:

With nxraySheet.PageSetup
    .Zoom = 75
垂直放置在一页上

如果要在1页上垂直显示,请先重置缩放因子:

With nxraySheet.PageSetup
    .Zoom = False
    .FitToPagesWide = False
    .FitToPagesTall = 1
水平放置在1页上,添加分页符

您可以打印1页宽,并直接在数据透视图之前添加手动水平分页符:

With nxraySheet
    .PageSetup.Zoom = False
    .PageSetup.FitToPagesWide = 1
    .PageSetup.FitToPagesTall = False
    .ResetAllPageBreaks
    .HPageBreaks.Add Before:=.ChartObjects(1).TopLeftCell.Row

图表在没有VBA的情况下是否正常打印到1页?在我看来,您没有正确设置打印区域。谢谢,这非常有效!我不知道HPageBreaks.add属性。很好:)那么请按照描述将我的答案标记为“已接受答案”。哈,很抱歉,你这样做了。再次感谢!