Программа Excel VBA завершается ошибкой при втором запуске оператора CreateObject, обращающегося к DLL - PullRequest
0 голосов
/ 21 марта 2019

У меня есть код 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...