ich habe einen Code, der mir alle PDFs aus einem Ordner zusammenführt und in einem anderen Ordner speichert. Dies funktioniert auch, solange der Pfad des Zielordners kein Leerzeichen enthält. Fehlermeldung bekomme ich keine.
Sub PDF_Merge()
Dim strPfad As String
Dim strPfadZ As String
Dim strName As String
Dim strGS As String
Dim strPDF As String
Dim strPDFZ As String
Dim strDatname As String
Dim strCommand As String
Dim lngTaskID As Long
Dim lngptrProcID As LongPtr
'Pfad für Ghostscript - ggf. anpassen
strGS = "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe"
'Verzeichnis auswählen, in dem die PDFs stehen, die zusammengefügt werden sollen
strPfad = "C:\Zeichnungen\"
'PDF-Dateien aus Verzeichnis einlesen
strDatname = Dir(strPfad & "*.pdf")
'Schleife zum einlesen aller entsprechenden Dateien
Do While Len(strDatname)
'Dateiname eintragen:
'Prüfen, ob Leerzeichen im Dateinamen existiert
If InStr(strDatname, " ") Then
'falls ja, muss der Dateiname in Anführungszeichen gesetzt werden
strPDF = strPDF & " """ & strPfad & strDatname & """"
Else
'falls nein, reicht die einfache Übername des eingelesenen Namens
strPDF = strPDF & " " & strPfad & strDatname
End If
strDatname = Dir
strPfadZ = "C:\Te st\"
Loop
'für Ghostscript den Befehl erstellen
strCommand = strGS & " -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=" & strPfadZ & "3_Zeichnungen.pdf -dBATCH" & strPDF
'Ghostscript-Befehl ausführen
lngTaskID = Shell(strCommand, 0)
lngptrProcID = OpenProcess(SYNCHRONIZE + PROCESS_QUERY_INFORMATION, 0&, lngTaskID)
Call WaitForSingleObject(lngptrProcID, INFINITE)
Call CloseHandle(lngptrProcID)
End Sub
Hat jemand eine Idee, was ich ändern muss, damit es auch mit Leerzeichen funktioniert?Folgende Variationen habe ich schon probiert, bin aber nicht zum Ziel gekommen:
strPfadZ = """C:\Desktop\Te st\"""
strPfadZ = "'C:\Desktop\Te st\'"