我在Windows 10 Pro计算机上运行了一些Excel 2010 VBA代码。该代码为DLL创建了一个对象,并且在程序的末尾将该对象设置为空。第一次代码运行良好,但是如果再次运行,它将在CreateObject行上崩溃,并显示以下错误消息:
运行时错误'-2147467259(80004005) 自动化错误 未指定错误
似乎DLL对象没有被释放,这也许就是为什么在尝试第二次创建该对象时它崩溃的原因。我发现此网页可能与以下内容有关: https://support.microsoft.com/en-us/help/178510/excel-automation-fails-second-time-code-runs
下面是一些示例代码,并指出了崩溃的行。任何想法如何解决/解决这个问题?此问题可能与在Windows 10上运行Office 2010有关吗?该代码可在我以前的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