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

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

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

要么你的进程需要复制macros所做的事情,以便更新工作表数据,或者确实需要首先在Excel环境中打开工作簿并执行macros,然后将更改保存到工作簿。