C++ 如何在excel中永久删除或更新VBA引用?

C++ 如何在excel中永久删除或更新VBA引用?,c++,excel,vba,dll,com,C++,Excel,Vba,Dll,Com,我的应用程序使用宏生成一些图表,这使用了对一些应用程序DLL的引用。我已经将整个应用程序从32位转换为64位,包括DLL。但其中一个引用似乎仍然引用了我之前使用的32位dll。现在,即使我尝试在引用中添加新的dll文件,它的名称也会有所不同,因此我无法从宏代码中创建此dll的对象。它给了我一个错误,说: 自动化错误:库未注册 对应代码: On Error GoTo errNoDatabase Set server = CreateObject("Bemmsdb.Server")

我的应用程序使用宏生成一些图表,这使用了对一些应用程序DLL的引用。我已经将整个应用程序从32位转换为64位,包括DLL。但其中一个引用似乎仍然引用了我之前使用的32位dll。现在,即使我尝试在引用中添加新的dll文件,它的名称也会有所不同,因此我无法从宏代码中创建此dll的对象。它给了我一个错误,说: 自动化错误:库未注册

对应代码:

On Error GoTo errNoDatabase
       Set server = CreateObject("Bemmsdb.Server")
       'server.Connect "SQLOLEDB", "BACKUP", "", "", "Trusted_Connection=Yes"
       'Set db = server.OpenDatabase("BEMMS")
       server.Connect "", "", "", "", ""
       Set db = server.OpenDatabase("")
       GoTo errSkip errNoDatabase:
       MsgBox "Unable to open database. Be sure to select a database in PowerScape before running the 'Query Enetics Database' macro.",
   Title:="Query Enetics Database Macro"
       Exit Sub
这会在底部显示错误消息,因为它无法创建Bemmsdb.Server对象。有人能帮我吗

Excel 2013 64位 Windows 10 64位
Visual Studio 2008 SP1

您自己开发了该dll吗?在C语言中,(一厢情愿地猜,我能看到C++标签)。总之,一个建议是,添加COM标记并删除宏。希望您能得到更多的响应。请尝试使用Microsoft ActiveX Data Objects 2.8库签入工具>参考,我知道您在线试用过免费代码清理器吗?他们会将所有内容导出到文本文件中,然后为您重建工作簿@汤姆:我试过了,但没用。我想这是我试图添加到引用中的dll文件的问题。64位dll将命名为ScriptHost,而不是其实际名称。有人知道这个库的命名是由哪个部分负责的吗。(我在C++源代码中找不到“脚本”)。