Динамическое объединение нескольких областей печати для сохранения в формате PDF в макросе Excel - PullRequest
0 голосов
/ 30 июня 2019

Динамическое объединение нескольких областей печати на листе Excel. Все работает отлично, за исключением линий объединения для областей печати с 11 по 14. Если я их закомментирую, все остальное работает. Есть ли проблема с наличием операторов if между кодом для установки областей печати Page_one и 11-14?

Я получаю ошибку «Ошибка во время выполнения« 1004 »: сбой метода« Диапазон »объекта« _Global ».

Sub SavetoPDF()

    Dim UseName As Variant
    Dim printRanges As Range

    UseName = Application.GetSaveAsFilename( _
        InitialFileName:="Analytics for Labs.pdf", _
        FileFilter:="PDF files, *.pdf", _
        Title:="Export to pdf")

    If UseName <> False Then

       Set printRanges = Range("Cover_Page")

        With Application.WorksheetFunction

           Set printRanges = Union(printRanges, Range("Page_one"))

           If .CountBlank(ActiveSheet.Range("b31")) = 0 Then Set printRanges = Union(printRanges, Range("Page_three"))
           If .CountBlank(ActiveSheet.Range("j31")) = 0 Then Set printRanges = Union(printRanges, Range("Page_four"))
           If .CountBlank(ActiveSheet.Range("b55")) = 0 Then Set printRanges = Union(printRanges, Range("Page_five"))
           If .CountBlank(ActiveSheet.Range("j55")) = 0 Then Set printRanges = Union(printRanges, Range("Page_six"))
           If .CountBlank(ActiveSheet.Range("b78")) = 0 Then Set printRanges = Union(printRanges, Range("Page_seven"))
           If .CountBlank(ActiveSheet.Range("j78")) = 0 Then Set printRanges = Union(printRanges, Range("Page_eight"))
           If .CountBlank(ActiveSheet.Range("b86")) = 0 Then Set printRanges = Union(printRanges, Range("Page_nine"))
           If .CountBlank(ActiveSheet.Range("j86")) = 0 Then Set printRanges = Union(printRanges, Range("Page_ten"))

           Set printRanges = Union(printRanges, Range("Print_eleven"))
           Set printRanges = Union(printRanges, Range("Print_twelve"))
           Set printRanges = Union(printRanges, Range("Print_thirteen"))
           Set printRanges = Union(printRanges, Range("Print_fourteen"))

        End With

        printRanges.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=UseName, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...