У меня есть код Excel 2010 VBA, работающий на компьютере с Windows 10 Pro. Код создает объект для DLL, и в конце программы объект устанавливается в ничто. Код работает нормально с первого раза, но если я запустил его снова, он вылетает в строке CreateObject со следующим сообщением об ошибке:
Ошибка времени выполнения '-2147467259 (80004005)
Ошибка автоматизации
Неуказанная ошибка
Похоже, что объект DLL не освобождается, и это может быть причиной его сбоя при попытке создать объект во втором запуске. Я нашел эту веб-страницу, которая может быть связана:
https://support.microsoft.com/en-us/help/178510/excel-automation-fails-second-time-code-runs
Ниже приведен пример кода и отмечена строка, в которой он падает. Любая идея, как устранить неполадки / исправить это? Может ли эта проблема быть связана с запуском Office 2010 в Windows 10? Код работал на моем предыдущем компьютере с Windows 7. Кстати, я далеко не эксперт в VBA, поэтому некоторые термины, которые я использую, могут быть отключены.
Sub AddOverlayToPDF()
Dim BasePath As String
Dim InFolder As String
Dim OutFolder As String
Dim FileName As String
Dim PDF, rslt
BasePath = "C:\Users\macke\Desktop\"
InFolder = BasePath & "Comm Charts - No Legend\"
OutFolder = BasePath & "Comm Charts\"
Set PDF = CreateObject("pdf.Meld") ' <-- *** THIS LINE FAILS ON SECOND RUN ***
FileName = Dir(InFolder & "*")
Do While Len(FileName) > 0
Debug.Print FileName
PDF.setRevOverlay
PDF.setRepeat
PDF.setOverlayPages ("9-11")
PDF.setInFile "C:\Users\macke\Desktop\Legend Overlay.pdf"
PDF.setInFile InFolder & FileName
PDF.setOutFile OutFolder & FileName
rslt = PDF.buildPDF
If rslt < 0 And rslt <> -10 Then
MsgBox ("Error " & rslt)
End If
PDF.setReset
FileName = Dir
Loop
Set PDF = Nothing
End Sub