C++ 如何在excel中永久删除或更新VBA引用?
我的应用程序使用宏生成一些图表,这使用了对一些应用程序DLL的引用。我已经将整个应用程序从32位转换为64位,包括DLL。但其中一个引用似乎仍然引用了我之前使用的32位dll。现在,即使我尝试在引用中添加新的dll文件,它的名称也会有所不同,因此我无法从宏代码中创建此dll的对象。它给了我一个错误,说: 自动化错误:库未注册 对应代码: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")
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++源代码中找不到“脚本”)。