wake-up-neo.com

Excel VBA zum Exportieren ausgewählter Blätter nach PDF

Ich verwende den folgenden Code, um ausgewählte Tabellen aus Excel 2010 in eine einzelne PDF-Datei zu exportieren ...

ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="C:\temp.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

Mein Problem ist, dass es nur das erste Blatt exportiert. Irgendwelche Ideen?

18
thistledownjohn

Nachdem Sie eine Gruppe von Blättern ausgewählt haben, können Sie Auswahl verwenden

Erwägen:

Sub luxation()
    ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
    Selection.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="C:\TestFolder\temp.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
End Sub

EDIT # 1:

Weitere Tests haben ergeben, dass diese Technik von der Gruppe der Zellen abhängt ausgewählt auf jedem Arbeitsblatt. Um eine umfassende Ausgabe zu erhalten, verwenden Sie Folgendes:

Sub Macro1()

   Sheets("Sheet1").Activate
   ActiveSheet.UsedRange.Select
   Sheets("Sheet2").Activate
   ActiveSheet.UsedRange.Select
   Sheets("Sheet3").Activate
   ActiveSheet.UsedRange.Select

   ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
   Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      "C:\Users\James\Desktop\pdfmaker.pdf", Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
      True
End Sub
27
Gary's Student

Ich bin ziemlich durcheinander. Ich verwende auch Excel 2010. Ich habe versucht, zwei Blätter als eine einzige zu speichern PDF mit:

    ThisWorkbook.Sheets(Array(1,2)).Select
    **Selection**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False

aber ich habe nichts als leere Seiten. Es hat beide Blätter gerettet, aber nichts auf ihnen. Es war nicht, bis ich verwendet habe:

    ThisWorkbook.Sheets(Array(1,2)).Select
    **ActiveSheet**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False

dass ich eine einzige PDF Datei mit beiden Blättern habe.

Ich habe versucht, diese beiden Seiten manuell mit Auswahl im Dialogfeld Optionen zu speichern, um die beiden von mir ausgewählten Seiten zu speichern, aber leere Seiten zu erhalten. Als ich die Option "Aktive Arbeitsblätter" ausprobierte, bekam ich, was ich wollte. Als ich dies als Makro aufzeichnete, verwendete Excel ActiveSheet, als die PDF-Datei erfolgreich veröffentlicht wurde. Was gibt?

8
asp8811

das habe ich mir ausgedacht, als ich Probleme mit der Antwort von @ asp8811 hatte (vielleicht meine eigenen Schwierigkeiten)

"Dadurch werden die ersten beiden Blätter in ein PDF eingefügt." Hinweis: Jedes ws sollte mit Seitenumbrüchen zum Drucken gesteuert werden, was etwas umständlich ist. "Dadurch wird das PDF explizit in die aktuelle Richtung verschoben

Sub luxation2()
    Dim Filename As String
    Filename = "temp201"



Dim shtAry()
ReDim shtAry(1) ' this is an array of length 2
For i = 1 To 2
shtAry(i - 1) = Sheets(i).Name
Debug.Print Sheets(i).Name
Next i
Sheets(shtAry).Select
Debug.Print ThisWorkbook.Path & "\"


    ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & Filename & ".pdf", , , False

End Sub
4
HattrickNZ