我在Windows 10专业版计算机上运行了一些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有关?这段代码可以在我之前的Windows7电脑上运行。顺便说一句,我不是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发布于 2021-10-08 11:10:50
我有相同的错误代码-2147467259 (80004005)原来我的用户正在运行的旧Excel工作表只与Office x86兼容。
我用Office2019 x64制作了一台新服务器--只要我把Office重新安装到x86上,宏就能正常工作。
ODBC实例在x32和x64中都有表示。检查您的x64与x86是否存在问题
https://stackoverflow.com/questions/55288414
复制相似问题