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

为何已安装Office但未注册的Microsoft.ACE.OLEDB.15.0可在VBA中使用?

解决PowerShell无法找到Microsoft.ACE.OLEDB.15.0驱动但VBA可用的问题

这是个典型的32位/64位环境不匹配问题,我帮你拆解一下原因和解决办法:

核心原因

你的Excel VBA是跟着Office的运行位数走的,但PowerShell默认可能运行在另一个位数的环境里:

  • 如果你装的是32位Office,VBA会在32位进程中运行,能正常调用32位的ACE驱动;但如果你的PowerShell是64位的,它只能读取64位注册表项里的驱动,自然找不到32位的Microsoft.ACE.OLEDB.15.0。
  • 反之,如果Office是64位,但你打开了32位PowerShell,也会出现同样的找不到驱动的情况。

具体解决步骤

1. 确认两边的运行位数

  • 检查Office位数:打开Excel → 点击「文件」→「账户」→「关于Excel」,在弹出的窗口里能看到是32位还是64位版本。
  • 检查PowerShell位数:打开PowerShell,输入以下命令并回车:
    [Environment]::Is64BitProcess
    
    返回True表示是64位PowerShell,False则是32位。

2. 匹配PowerShell的运行位数

如果Office和当前PowerShell位数不匹配,切换到对应位数的PowerShell即可:

  • Office是32位:打开32位PowerShell,路径一般是:
    C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
    
    打开后再查询驱动列表,就能找到Microsoft.ACE.OLEDB.15.0了。
  • Office是64位:确保你打开的是默认的64位PowerShell(路径是C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe),如果之前误开了32位版本,切换过来就能正常识别驱动。

3. 手动注册驱动(可选,仅当驱动确实未注册时)

如果确认位数匹配但还是找不到,可以手动注册ACE驱动的DLL:

  • 32位驱动注册命令(以Office 2013为例,路径可能因版本不同略有变化):
    C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\Microsoft Office\Office15\ACEODBC.dll"
    
  • 64位驱动注册命令:
    C:\Windows\System32\regsvr32.exe "C:\Program Files\Microsoft Office\Office15\ACEODBC.dll"
    
    注意:执行命令时需要以管理员身份运行命令提示符。

补充说明

你提供的VBA代码能正常运行,正是因为VBA的进程位数和ACE驱动的位数完全匹配,而PowerShell因为位数不兼容,才看不到这个驱动。只要调整PowerShell的运行位数,就能解决问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:56:05