Wie kann man mit VBA mehrere PDF-Dateien drucken, die über Dropdown-Listen gesteuert werden?

431
user2800

Ich habe ein Excel-Arbeitsblatt, das ein Kombinationsdiagramm zur Anzeige von Trenddaten von 49 Fertigungsarbeitszellen generiert. Die Diagrammquelldaten basieren auf Zellen, die eine große Anzahl von Formeln enthalten (Bildmitte unten). Ich habe das Arbeitsblatt so erstellt, dass der Benutzer eine Arbeitszelle aus der Dropdown-Liste in A5 auswählt und die Formeln und das Diagramm automatisch aktualisiert werden. Die Quelle für die Datenüberprüfung von A5 ist eine Spalte in einer Tabelle in einem anderen Arbeitsblatt. Ich habe dieses Arbeitsblatt mit einem Druckbereich um die Grafik herum eingerichtet.

Excel Sheet-Screenshot

Im Moment kann ich den folgenden Code verwenden, um alle Diagramme durchzugehen und auf eine einzelne PDF-Seite zu drucken:

Sub TestLoopMacro()  Sheets("My Sheet").Select  'SOURCE FOR TIMER CODE: www.TheSpreadsheetGuru.com/the-code-vault Dim StartTime As Double Dim SecondsElapsed As Double  'Remember time when macro starts StartTime = Timer   Dim Count As Integer  For Count = 2 To 50 Range("A5").Select Range("A5").Value = Worksheets("Cells Sheet").Range("E" & Count)  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "H:\Some Path\Test Exports\" & Worksheets("Cells Sheet").Range("B" & Count) & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False Next Count  'Determine how many seconds code took to run SecondsElapsed = Round(Timer - StartTime, 2)  'Notify user in seconds MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation  End Sub 

Ich möchte die Grafiken für alle 49 Zellen in einem einzigen PDF drucken können. Dieser Code erstellt erfolgreich 49 PDFs mit eindeutigen Diagrammen.

Gibt es eine Möglichkeit, dass sie mit VBA in dieselbe PDF-Datei exportiert werden können, anstatt sie später mit Adobe / Ähnlichem zusammenzuführen? Ich habe gepostete Fragen zum Versuch gefunden, ähnliche Dinge zu tun, aber es wurden Druckbereiche aus mehreren Arbeitsblättern (im Gegensatz zu mehreren Instanzen desselben Arbeitsblatts) exportiert.

-1
Was hast du bisher versucht? Eine FOR-Schleife klingt nach der richtigen Lösung, haben Sie das also schon probiert? music2myear vor 5 Jahren 0
Ich habe es heute morgen geschafft, die Schleife zum Laufen zu bringen. Frage wurde mit meinem aktuellen Statuscode bearbeitet. Es durchläuft erfolgreich alle 49 Zellen und erstellt 49 PDF-Dateien mit den richtigen Namen. Ich möchte jedoch, dass sie alle in einem einzigen PDF-Dokument vorliegen, anstatt sie zu trennen. (Randbemerkung - die Laufzeit für das Makro beträgt etwa 150 Sekunden) user2800 vor 5 Jahren 0
Suchen Sie nach Tipps zum Beschleunigen von Excel-Makros. Es gibt einige einfache Dinge (z. B. das Deaktivieren der Bildschirmwiederherstellung), mit denen Makros um Größenordnungen beschleunigt werden können. Um eine einzelne PDF-Datei zu erstellen, möchten Sie die Ausgabe von jedem Schritt der FOR-Schleife nicht als Druckauftrag, sondern in einem früheren Formular erfassen. Wenn die FOR-Schleife abgeschlossen ist, wird die gesamte Ausgabe gedruckt. music2myear vor 5 Jahren 0

1 Antwort auf die Frage

0
Yorik

Acrobat unterstützt Javascript, sodass Sie möglicherweise die Dokumente mit der Acrobat- Doc.insertPagesMethode zusammenführen können.

( https://help.adobe.com/de_DE/acrobat/acrobat_dc_sdk/2015/HTMLHelp/#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_insertPagesbc-73&rhtocid = _6___________

Alternativ können Sie Shell.ShellExecuteein Open-Source-Befehlszeilen-PDF-Tool verwenden.