You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位Excel创建Lotus.NotesSession时出现ActiveX组件无法创建对象错误

解决64位Excel中创建Lotus NotesSession对象时的运行时错误'429'

问题重现

你遇到的情况非常典型:这段VBA代码在32位Excel里运行毫无问题,但切换到64位Excel后就会抛出运行时错误'429':ActiveX component can't create object:

Sub Macro()
    Dim Session As NotesSession
    Set Session = CreateObject("Lotus.NotesSession")
End Sub

原因分析

你的推测完全正确——Lotus Domino Objects库本身是32位组件,64位程序(这里指64位Excel)无法直接加载32位的ActiveX控件,这是系统架构不兼容导致的核心问题。而你尝试用regsvr32注册c:\notes\nlsxbe.dll没用,是因为64位系统里默认的regsvr32是64位版本,它根本无法注册32位的DLL文件。

可行的解决方案

下面给你几个实用的解决思路,按优先级排序:

1. 安装64位版Lotus Notes/Domino客户端(最优解)

如果你的组织已经部署了64位的Lotus客户端,直接安装对应版本,之后在64位Excel里引用64位的Lotus Domino Objects库(路径一般是C:\Program Files\IBM\Notes\nlsxbe.dll),再运行代码就能正常创建NotesSession对象了。

2. 强制Excel以32位模式运行

如果暂时没有64位Lotus客户端,最简单的办法是让64位Excel切换到32位环境:

  • 打开控制面板 → 程序和功能 → 找到Microsoft Office → 点击「更改」
  • 选择「添加或删除功能」→ 展开「Excel」选项
  • 把「运行所有程序」对应的选项改成「32位」,完成安装后重启Excel
    这样Excel就会以32位模式运行,自然能兼容32位的Lotus组件。

3. 尝试32/64位COM桥接工具(备选方案)

如果必须保留64位Excel,又只能用32位Lotus组件,可以考虑使用COM Surrogate或者第三方的32/64位桥接工具,但这种方法配置复杂,稳定性也不如前两种,只推荐在前两个方案不可行时尝试。

4. 改用Lotus Notes REST API(长期方案)

如果你的Lotus Domino服务器支持REST服务,可以完全绕开ActiveX组件,直接用VBA发送HTTP请求调用REST接口实现业务逻辑。这种方法不受32/64位架构限制,也是更通用的长期解决方案。

补充提示

另外要注意:64位系统里的32位regsvr32路径是C:\Windows\SysWOW64\regsvr32.exe,即便用它成功注册了32位DLL,64位Excel依然无法加载该组件,所以这个操作对解决问题没有实际帮助,不用再尝试了。

内容的提问来源于stack exchange,提问作者Takichiii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:36:11