2017-05-10 3 views
1

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 

Antwort

1

versuchen, wie dies zu ändern: eine Schleife durch die Blätter, seine triviale VBA Aufgabe

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

Dann versuchen, einen Weg, wie zu finden. Im Allgemeinen wurde in Ihrem Code wsA nicht festgelegt. Sie haben also einen Fehler erhalten.

+1

Ausgezeichnet, danke für Ihre Zeit und Anleitung. Es funktioniert jetzt. –

+0

@ Boosted_d16 - Sie sind willkommen :) – Vityata

Verwandte Themen