Просьба не отмечать дубликаты, поскольку я правильно проверял другие связанные решения, связанные с ошибкой 91, но ни один из них, похоже, не нашел решение проблемы, с которой я столкнулся.Ошибка VBA 91 - Объект или с блоком Переменная не установлена
Я пытаюсь преобразовать файлы coreldraw, вложенные в различные папки (около 500 файлов), используя следующий код VBA, но при этом он либо сбой приложения, либо объект Error 91 'Object или With Block Variable not set'. Тот же код абсолютно отлично работает при использовании с другим демо-набором файлов, который я создал для тестирования.
Один случай, который я мог бы предположить, - это файл, показывающий некоторое диалоговое окно при обработке сценария. Если да, то как я должен предотвратить эти диалоговые окна. Application.DisplayAlerts = False не работает в coreldraw.
Но в любом случае это только предположение. Может кто-то поможет мне найти проблему. Heres код
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
Это обычно помогает при отладке сообщения об ошибках, чтобы узнать WHA строка выводит ошибку. – Jeeped