使用 ADO 打开包含宏 (.xlsm) 的 Excel 工作簿并运行宏



我一直在使用 ADO 来处理许多 Excel .xls和.xlsx工作簿,没有任何问题。 最近,我尝试处理 .xlsm 工作簿以加载到 Access 数据库。工作簿包含多个宏,每次用户打开桌面版本的 Excel 时都会运行这些宏。 宏使用"今天"数据更新"昨天"数据。 不幸的是,当我以编程方式阅读工作簿时,ADO 返回"昨天"数据。 对我来说,这意味着当我使用 ADO 打开工作簿时,宏未运行。 任何建议。 希望我不需要重写代码来打开 Excel 实例来处理工作簿。

ADO 仅访问工作簿中保存的数据。在 Excel 中打开工作簿时,vba(或任何其他)代码不会动态执行任何操作。Excel 宏只能在工作簿在应用程序界面中打开时运行。

您的流程需要复制宏正在执行的操作以更新工作表数据,或者,是的,确实,您需要首先在 Excel 环境中打开工作簿并执行宏,然后将更改保存到工作簿。

最新更新