首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA程序在第二次运行语句CreateObject访问动态链接库时失败

Excel VBA程序在第二次运行语句CreateObject访问动态链接库时失败
EN

Stack Overflow用户
提问于 2019-03-22 04:00:41
回答 1查看 59关注 0票数 0

我在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方面的专家,所以我使用的一些术语可能有问题。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-10-08 11:10:50

我有相同的错误代码-2147467259 (80004005)原来我的用户正在运行的旧Excel工作表只与Office x86兼容。

我用Office2019 x64制作了一台新服务器--只要我把Office重新安装到x86上,宏就能正常工作。

ODBC实例在x32和x64中都有表示。检查您的x64与x86是否存在问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55288414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档