我一直在使用 ADO 来处理许多 Excel .xls和.xlsx工作簿,没有任何问题。 最近,我尝试处理 .xlsm 工作簿以加载到 Access 数据库。工作簿包含多个宏,每次用户打开桌面版本的 Excel 时都会运行这些宏。 宏使用"今天"数据更新"昨天"数据。 不幸的是,当我以编程方式阅读工作簿时,ADO 返回"昨天"数据。 对我来说,这意味着当我使用 ADO 打开工作簿时,宏未运行。 任何建议。 希望我不需要重写代码来打开 Excel 实例来处理工作簿。
ADO 仅访问工作簿中保存的数据。在 Excel 中打开工作簿时,vba(或任何其他)代码不会动态执行任何操作。Excel 宏只能在工作簿在应用程序界面中打开时运行。
您的流程需要复制宏正在执行的操作以更新工作表数据,或者,是的,确实,您需要首先在 Excel 环境中打开工作簿并执行宏,然后将更改保存到工作簿。