Bitte markieren Sie das Duplikat nicht, da ich andere verwandte Lösungen speziell für Error 91 überprüft habe, aber keine davon scheint mir die Lösung für das Problem zu liefern.VBA Error 91 - Object oder With block Variable nicht gesetzt
Ich versuche, meine Coreldraw-Dateien verschachtelt in verschiedenen Ordnern (etwa 500 Dateien) mit dem folgenden VBA-Code, aber entweder Absturz der Anwendung oder zeigt die Error 91 'Object oder With Block Variable nicht gesetzt'. Derselbe Code funktioniert einwandfrei, wenn er mit dem anderen Demo-Set von Dateien verwendet wird, die ich zum Testen erstellt habe.
Ein Fall könnte ich vermuten, ist die Datei zeigt einige Dialog bei der Verarbeitung des Skripts. Wenn ja, wie soll ich diese Dialogfelder verhindern? Application.DisplayAlerts = False funktioniert nicht in Coreldraw.
Aber dieser Fall ist nur eine Annahme. Kann mir jemand helfen, das Problem zu finden? Heres der Code
Sub NewFolder()
Dim FileSystem As Object
Dim HostFolder As String
HostFolder = "My folder Path"
Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(HostFolder)
End Sub
Sub DoFolder(folder)
Dim SubFolder
For Each SubFolder In folder.SubFolders
DoFolder SubFolder
Next
Dim File
For Each File In folder.Files
If InStr(File.Name, ".cdr") Then
Application.OpenDocument (File)
End If
Dim filepath As String
filepath = ActiveDocument.FullFileName
Dim doc1 As Document
Dim SaveOptions As StructSaveAsOptions
Set SaveOptions = CreateStructSaveAsOptions
Set doc1 = ActiveDocument
With SaveOptions
.EmbedVBAProject = True
.Filter = cdrCDR
.IncludeCMXData = False
.Range = cdrAllPages
.EmbedICCProfile = True
.Version = cdrVersion17
End With
doc1.SaveAs filepath, SaveOptions
doc1.Close
' Operate on each file
Next
End Sub
laufen zu haben, es hilft in der Regel, wenn Fehlermeldungen Fehlersuche zu wissen, wha t Zeile wirft den Fehler. – Jeeped