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