Создать ошибку компиляции PDF «Приложение: определенная или объектно-определенная ошибка»

#excel #vba #pdf

#excel #vba #PDF

Вопрос:

У меня есть пользовательская форма VBA, в которой пользователь выполняет поиск в таблице базы данных для определенных терминов. Он генерирует результат на отдельном листе, и когда пользователь нажимает кнопку печати, создается PDF-файл, который включает все данные в таблице результатов поиска.

Это выдает ошибку компиляции

«Приложение: определенная или объектно-определенная ошибка»

 Sub CreatePDF()

    Sheet4.Select
    Range("A1:N25").Select
 

        ThisWorkbook.Sheets("SearchData").Select
        Selection.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:="D:AliBinAliSecurity Visitor Apptemp.pdf", _
            Quality:=xlQualityStandard, _
            Orientation:=xlLandscape, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
               
       
    Sheet4.Select
    Range("A1").Select

End Sub
 

Выделенная строка:

 Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _             
  Filename:="D:AliBinAliSecurity Visitor Apptemp.pdf", _             
  Quality:=xlQualityStandard, _
  Orientation:=xlLandscape, _
  IncludeDocProperties:=True, _
  IgnorePrintAreas:=False, _
  OpenAfterPublish:=True
 

Комментарии:

1. какая строка выделяется?

2. Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="D:AliBinAliSecurity Visitor Apptemp.pdf", _ Quality:=xlQualityStandard, _ Orientation:=xlLandscape, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True

Ответ №1:

Ориентация

PageSetup.Orientation

Range.Orientation

В Orientation аргументе отсутствует Worksheet.ExportAsFixedFormat method .
Вы могли бы попробовать это:

 Option Explicit

Sub CreatePDF()

    With ThisWorkbook.Worksheets("SearchData")
        .PageSetup.Orientation = xlLandscape
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:="D:AliBinAliSecurity Visitor Apptemp.pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With
    
    With Sheet4
        .Activate
        .Range("A1").Select
    End With

End Sub
 

или если вы хотите распечатать диапазон:

 Sub CreatePDF2()
 
    With Sheet4.Range("A1:N25")
        .Worksheet.PageSetup.Orientation = xlLandscape
        .Orientation = xlHorizontal
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:="D:AliBinAliSecurity Visitor Apptemp.pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
        .Worksheet.Activate
        .Cells(1).Select   
    End With

End Sub
 

Комментарии:

1. Спасибо, первый работал отлично, без сбоев.

2. @kamranmirza, пожалуйста, отметьте как ответ, чтобы поток отображался как ответ.