2017-03-03 3 views
2

So habe ich diesen einfachen kleinen Code ein Excel-Blatt zu PDF auf einer Befehlstaste auf meiner Excel-Tabelle zu konvertieren:Excel To PDF Ausgabe

Sub Save_Excel_As_PDF() 

    ActiveSheet.ExportAsFixedFormat _ 
        Type:=xlTypePDF 

End Sub 

Das Problem ist, dass ich zuerst durch die einzelnen Schritte manuell gehen (Speichern unter, dann PDF usw.), damit die Schaltfläche funktioniert, nachdem ich zuerst die manuellen Schritte durchlaufen habe.

Ich wollte dies überall speichern und einfach auf die Schaltfläche klicken, um die PDF zu erstellen, ohne zuerst alle manuellen Schritte zu durchlaufen. Kann dieser Code geändert werden, um das zu tun?

+0

Wenn ich 'ActiveSheet.ExportAsFixedFormat xlTypePDF' starte, werde ich nicht aufgefordert, manuell etwas zu tun. Ich habe keine Ahnung, wo die Ausgabe * geht *, aber ich bekomme keinen Fehler oder eine Warnung oder irgendetwas, das die Laufzeit unterbricht. Was genau willst du tun? –

Antwort

3

Ohne die FileName Parameter angeben, die PDF in Ihrem Documents Ordner gespeichert werden. Nachdem Sie ein Handbuch Save As in einem Ordner erstellt haben, wird es das nächste Mal in demselben Ordner erstellt.

Sie nicht das überhaupt benötigen, können Sie die Datei im selben Ordner wie die Arbeitsmappe erstellen, mit dem gleichen Namen wie der Name des Arbeitsblatt, indem Sie den FileName Parameter angeben:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
    FileName:=ThisWorkbook.Path & "\" & ActiveSheet.name 

Sie ein anderes angeben Name oder ein anderer Ordner als ThisWorkbook.Path.

+1

FANTASTISCH! Vielen Dank! – Lucho

+0

@Lucho du bist willkommen :) –

1

denken, das funktioniert für mich:

Sub Macro1() 

ChDir "C:\Users\Shyamsundar.Shankar\Desktop" 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Shyamsundar.Shankar\Desktop\Sheet1.pdf", Quality:=xlQualityStandard 

End Sub 
0

Dieses Skript unten konvertiert alle Excel-Dateien in PDF-Dateien.

Sub Convert_Excel_To_PDF() 

    Dim MyPath As String, FilesInPath As String 
    Dim MyFiles() As String, Fnum As Long 
    Dim mybook As Workbook 
    Dim CalcMode As Long 
    Dim sh As Worksheet 
    Dim ErrorYes As Boolean 
    Dim LPosition As Integer 

    'Fill in the path\folder where the Excel files are 
    MyPath = "c:\Users\yourpath_here\" 

    FilesInPath = Dir(MyPath & "*.xl*") 
    If FilesInPath = "" Then 
     MsgBox "No files found" 
     Exit Sub 
    End If 

    Fnum = 0 
    Do While FilesInPath <> "" 
     Fnum = Fnum + 1 
     ReDim Preserve MyFiles(1 To Fnum) 
     MyFiles(Fnum) = FilesInPath 
     FilesInPath = Dir() 
    Loop 

    With Application 
     CalcMode = .Calculation 
     .Calculation = xlCalculationManual 
     .ScreenUpdating = False 
     .EnableEvents = False 
    End With 

    If Fnum > 0 Then 
     For Fnum = LBound(MyFiles) To UBound(MyFiles) 
      Set mybook = Nothing 
      On Error Resume Next 
      Set mybook = Workbooks.Open(MyPath & MyFiles(Fnum)) 
      On Error GoTo 0 

      If Not mybook Is Nothing Then 

       LPosition = InStr(1, mybook.Name, ".") - 1 
       mybookname = Left(mybook.Name, LPosition) 
       mybook.Activate 

       'All PDF Files get saved in the directory below: 
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= 
        "C:\Users\your_path_here\" & mybookname & ".pdf", 
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
        :=False, OpenAfterPublish:=False 

      End If 

      mybook.Close SaveChanges:=False 

     Next Fnum 
    End If 

    If ErrorYes = True Then 
     MsgBox "There are problems in one or more files, possible problem:" _ 
      & vbNewLine & "protected workbook/sheet or a sheet/range that not exist" 
    End If 

    With Application 
     .ScreenUpdating = True 
     .EnableEvents = True 
     .Calculation = CalcMode 
    End With 

End Sub