VBA-код для хранения объекта диаграммы на одном листе при использовании метода range.exporttopdf - PullRequest
1 голос
/ 27 мая 2019

У меня есть код, который выводит диапазон и сводную диаграмму в 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

[PDF]

1 Ответ

1 голос
/ 27 мая 2019

К сожалению, в Excel вы не можете указать диаграмму, которая будет напечатана целиком (будет похоже на «Excel, пожалуйста, переместите диаграмму на несколько строк вверх или вниз, чтобы напечатать ее целиком»).

Вот несколько вариантов:

Общий зум

Вы не можете иметь одновременно и FitToPagesWide = 1, и Zoom = 85. Это не вызывает ошибку, но эти настройки конфликтуют друг с другом и выигрывает коэффициент масштабирования. Поэтому вы можете выбрать более низкий коэффициент увеличения:

With nxraySheet.PageSetup
    .Zoom = 75

Подогнать вертикально на 1 странице

Если вы хотите, чтобы он помещался вертикально на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...