Ich muss viele Bilder aus einer Excel-Tabelle exportieren und einen aussagekräftigen Dateinamen zuweisen, der auf den Werten in einer bestimmten Spalte basiert. Ich habe eine großartige Antwort von Kyle gefunden, der ein Skript als Antwort auf eine ähnliche Frage gepostet hat. Wenn ich das Skript ausführe, funktioniert es jedoch einwandfrei, bis Zeile 238 (alle Bilder bis zu dieser Zeile werden korrekt exportiert). Dann wird der Prozess angehalten und der folgende Fehler generiert: Laufzeitfehler '-21477467259 (80004005)': Shape.Export: Illegaler Wert.
Meine VB-Kenntnisse sind nicht gut genug, um zu verstehen, was hier falsch läuft. Könnte mir bitte jemand hier raushelfen?
Dies ist der Code (bereitgestellt von Kyle), den ich verwendet habe. Ich habe nur den Speicherort des Ordners, den Namen des Arbeitsblatts und die Versatzwerte geändert, um auf die richtigen Werte abzielen zu können:
Const destFolder$ = "F:\backup\tmp\"
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("CASE_DATA")
Dim ppt As Object, ps As Variant, slide As Variant
Set ppt = CreateObject("PowerPoint.application")
Set ps = ppt.presentations.Add
Set slide = ps.slides.Add(1, 1)
Dim shp As Shape, shpName$
For Each shp In ws.Shapes
shpName = destFolder & shp.TopLeftCell.Offset(0, -6) & ".png"
shp.Copy
With slide
.Shapes.Paste
.Shapes(.Shapes.Count).Export shpName, 2
.Shapes(.Shapes.Count).Delete
End With
Next shp
With ps
.Saved = True
.Close
End With
ppt.Quit
Set ppt = Nothing
Vielen Dank im Voraus für jede Hilfe!
quelle
Debug.Print "[" & shpName & "]"
nach der linieshp.Copy
. Was enthält es, könnte es leer sein?