2016-08-05 109 views
-1

Ich habe eine Schaltfläche mit einem zugewiesenen Makro erstellt, damit ein Benutzer ein Excel-Blatt als PDF-Datei einfach exportieren kann. Hier ist der Code:Excel VBA speichern als PDF erstellt leere Seiten

`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` 

Das funktioniert perfekt, außer der Tatsache, dass ich es nur die erste Seite eines Arbeitsblatt zu exportieren. Wenn Sie jetzt die Seitenumbruchansicht aktivieren, können Sie sehen, dass 15 Seiten im aktiven Blatt vorhanden sind. Daher hat das generierte PDF 15 Seiten. Wie kann ich diesen Code bearbeiten, damit er nur die erste Seite des aktiven Blattes (wenn in der Seitenumbruchvorschau angezeigt wird) in eine PDF-Datei konvertiert?

Danke.

Antwort

0

Danke. Ich war in der Lage, das Problem leicht zu lösen mit Von und To Aussagen.