升级Windows2019+Excel2021后C#调用VBA宏报错求助
Excel Interop执行VBA宏报错问题
我编写了一个使用Excel Interop库打开文件并执行VBA宏的C#程序,此前在Windows 2016+Excel 2016服务器环境中已稳定运行许久。将服务器升级至Windows 2019+Excel 2021后,运行相同程序和Excel文件时出现如下报错:
该宏可能在此服务中不可用,或者所有宏已被禁用。
我已按照以下相同步骤在新旧环境中启用所有宏,但问题仍未解决:
- 打开Microsoft Excel,点击「文件」>「选项」>「常规」,禁用「启动此应用时显示开始屏幕」
- 在Excel中点击「文件」>「选项」>「信任中心」>「信任中心设置」:
- 进入「ActiveX 设置」页面,先选择「安全模式」,再选择「启用所有控件而不限制且不提示(不推荐;可能运行危险控件)」
- 进入「宏设置」页面,选择「启用所有宏(不推荐;可能运行危险控件)」
- 进入「受保护的视图」页面,取消勾选所有选项
- 进入「隐私选项」页面,取消勾选隐私选项下的所有内容,以及文档特定设置中的「打印前发出警告」选项
- 关闭所有Microsoft Office应用程序
- 通过「控制面板」>「用户」禁用用户账户控制(UAC)
- 将管理员用户添加至「分布式COM用户」组:
- 按下Win+R打开运行窗口,输入
lusrmgr.msc并回车;点击「组」,右键「分布式COM用户」组选择「属性」,点击「添加」将目标管理员用户加入后点击「确定」
- 按下Win+R打开运行窗口,输入
- 为Microsoft Office应用程序配置管理员用户:
- 按下Win+R打开运行窗口,输入
mmc -32并回车;点击「文件」>「添加/删除管理单元」>「组件服务」,点击「添加」后点击「确定」 - 导航至「控制台根节点」>「组件服务」>「计算机」>「我的电脑」>「DCOM配置」
- 右键「Microsoft Excel 应用程序」选择「属性」,切换至「标识」选项卡,选择「此用户」,浏览并选择启动文档转换服务的管理员用户,输入其凭据
- 切换至「位置」选项卡,勾选「在此计算机上运行应用程序」
- 按下Win+R打开运行窗口,输入
内容的提问来源于stack exchange,提问作者vittochan
相关产品推荐
相关产品推荐

