2016-08-05 5 views
-1

Я создал кнопку с назначенным макросом, чтобы пользователь мог легко экспортировать Excel-лист в виде pdf-файла. Вот код:Excel VBA save as PDF создает пустые страницы

`Sub PDFActiveSheet() 
Dim ws As Worksheet 
Dim strPath As String 
Dim myFile As Variant 
Dim strFile As String 
On Error GoTo errHandler 

Set ws = ActiveSheet 

'enter name and select folder for file 
' start in current workbook folder 
strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _ 
      & "_" _ 
      & Format(Now(), "yyyymmdd\_hhmm") _ 
      & ".pdf" 
strFile = ThisWorkbook.Path & "\" & strFile 

myFile = Application.GetSaveAsFilename _ 
    (InitialFileName:=strFile, _ 
     FileFilter:="PDF Files (*.pdf), *.pdf", _ 
     Title:="Select Folder and FileName to save") 

If myFile <> "False" Then 
    ws.ExportAsFixedFormat _ 
     Type:=xlTypePDF, _ 
     Filename:=myFile, _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=False, _ 
     OpenAfterPublish:=False 

    MsgBox "PDF file has been created." 
End If 

exitHandler: 
    Exit Sub 
errHandler: 
    MsgBox "Could not create PDF file" 
    Resume exitHandler 
End Sub` 

Это отлично работает для того, что мне нужно это только экспортировать первую страницу листа за исключением. В настоящее время, если вы включите просмотр разрыва страницы, вы увидите, что в активном листе присутствует 15 страниц, поэтому сгенерированный PDF-файл содержит 15 страниц. Как я могу отредактировать этот код, чтобы преобразовать первую страницу активного листа (если просмотр в предварительном просмотре страницы) в файл pdf?

Спасибо.

ответ

0

Спасибо. Я смог легко решить проблему, используя От и К операторам.