Office365更新后Excel VBA引用ACEDAO.DLL失效问题求助
问题分析与修复方案
问题根源
错误&H800700C1是无效可执行格式错误,结合你提到的ACEADO.dll路径不存在,核心原因是Office 365 2212版本更新中,微软调整了ACE组件的部署逻辑:原ACEADO.dll被整合至其他核心ACE库,且VBA对DAO的引用绑定规则被修改,导致旧硬编码引用路径失效。
修复步骤
1. 切换为DAO延迟绑定
放弃对ACEADO.dll的显式依赖,改用延迟绑定调用DAO,彻底规避版本与路径问题:
Dim engine As Object Set engine = CreateObject("DAO.DBEngine.120") ' 适配Office 365的兼容版本
若上述代码报错,尝试替换为DAO.DBEngine.36(对应Office 365最新ACE组件版本)。
2. 手动注册ACE核心组件
打开管理员权限的命令提示符,依次执行以下命令注册核心ACE库:
regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\ACEOLEDB.DLL" regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\DAO360.DLL"
3. 调整VBA项目引用设置
打开Excel VBA编辑器,进入工具>引用:
- 取消勾选旧的
Microsoft Office 16.0 Access database engine Object Library(若仍显示在列表中) - 勾选Microsoft DAO 3.6 Object Library(该库在Office 365中保持稳定部署)
- 保存项目后重新测试代码
4. 临时回滚Office更新(应急方案)
若上述方法无法快速生效,可回滚至2212版本之前的Office构建:
- 打开Office,进入
文件>账户>更新选项>禁用更新 - 下载对应旧版本安装包(如16.0.15831.20208),执行覆盖安装
类似案例说明
Office 365的半年度更新(如2212、2302版本)多次出现ACE/DAO组件部署调整,大量企业用户遇到相同的&H800700C1错误,多数通过延迟绑定或重新注册组件解决问题。
内容的提问来源于stack exchange,提问作者Étienne Jean
相关产品推荐
相关产品推荐

