2017-07-19 6 views
0

Ich habe eine einfache Funktion gemacht, um alle meine Registerkarten in einen Zielordner zu speichern. Nach der Implementierung des Gesamtprozesses wurde mir klar, dass dies Woche für Woche nicht funktionieren wird.Als PDF speichern VBA Funktionsproblem

Um das Problem zu lösen Ich habe von einer Woche zur anderen, ich brauche die Dateien zu pdfs anstelle von .xlsx. Ich habe versucht, das selbst zu beheben, indem ich die bereits existierende Funktion änderte, aber wenn ich die PDFs öffne, die es erzeugt, sind sie "beschädigt" oder so sagt Adobe.

Bitte siehe unten:

Sub SaveFilesInFolder() 
' 
'This is a function for saving each worksheet as a workbook in a destination folder 
' 

' 
    Dim sh As Worksheet 
    Dim wb As Workbook 

    For Each sh In Worksheets 
     SheetName = sh.Name 
     sh.Copy 

     With ActiveWorkbook 
      .SaveAs FileName:="C:\Example\" & SheetName & ".pdf" 
      .Close SaveChanges:=True 
     End With 

    Next sh 

End Sub 

Ich kenne ExportAsFileFormat aber ich habe Probleme, dass immer mit der gesamten Arbeitsmappe zu arbeiten, die mehr als 100 Registerkarten.

Alle Empfehlungen sind willkommen.

Danke,

Antwort

1
Sub Test() 
For Each sht In Sheets 
    sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\" & sht.Name & ".pdf" 
Next 
End Sub 
+0

Das funktioniert, aber ich brauche jede Registerkarte als separate PDF-Datei. Danke für deinen Beitrag. –

+0

Siehe bearbeitete Antwort –

+0

Abe, es wird ein Fehler angezeigt, der besagt: "Wir konnten nichts zum Drucken finden". Ich habe Ihren Code kopiert und eingefügt und nur den Zielordner geändert. –

0

Sie müssen die ExportAsFixedFormat Methode aufzurufen.

.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Example\" & SheetName & ".pdf" 
+0

ich versuchte, dies aber ein Problem hat mich von ihm zu scheuen. Es forderte mich auf, eine Excel-Datei für jedes Arbeitsblatt zu speichern. –