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