ich über alle Arbeitsblätter in einer Arbeitsmappe Schleife wollen und sie als einzelne PDF-Dateien in den gleichen Weg wie die Arbeitsmappe speichern. Die Dateien sind nach dem Namen des Arbeitsblatts benannt.Speichern jedes Arbeitsblatt in der Arbeitsmappe als Einzel pdf
Dieser Code unten arbeitet, bis die "wsA.ExportAsFixedFort" line up. Die Fehlermeldung, die ich bekommen ist:
Run-time error '91': Object variable or With block variable not set
Aber ich kann nicht herausfinden, was das Problem ist ...
Irgendwelche Vorschläge?
Option Explicit
Sub WorksheetLoop()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
Dim WS_Count As Integer
Dim I As Integer
' Set WS_Count equal to the number of worksheets in the active workbook.
Set wbA = ActiveWorkbook
WS_Count = wbA.Worksheets.Count
strPath = wbA.Path
strTime = Format(Now(), "yyyymmdd\_hhmm")
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
' Begin the loop.
For I = 1 To WS_Count
'replace spaces and periods in sheet name
strName = Replace(wbA.Worksheets(I).Name, " ", "")
strName = Replace(strName, ".", "_")
'create default name for savng file
strFile = strName & "_" & strTime & ".pdf"
myFile = strPath & strFile
Debug.Print myFile
'export to PDF if a folder was selected
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If
Next I
End Sub
Ausgezeichnet, danke für Ihre Zeit und Anleitung. Es funktioniert jetzt. –
@ Boosted_d16 - Sie sind willkommen :) – Vityata