python - 如何引用启用宏的 Excel 工作簿并在 Python 中运行 VBA 代码?
问题描述
我已经在 Excel 中建立了一个优化模型,我试图循环遍历多个观察结果并为每个观察结果存储最佳输出。我有一个数据集,我试图将其读入 python,然后将输入值循环放入 Excel 工作表,运行求解器/VBA 代码,然后返回每个观察的输出。
下面是我的输入值的数据集,后面是我尝试使用的当前代码。我目前在下面有这段代码,这是我从这篇文章https://stackoverflow.com/a/19743828/11046221中得到的,因为它似乎让我走得最远。但是我试图找到如何引用“模块”名称并且无法让它工作,所以我在帖子中进一步看到引用工作表名称,这也不起作用,都导致错误消息:
“无法运行宏 'P:/optimization_model_reference.xlsm!Excel_Model.run_solver_v2'。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
obs var1 var2 var3
0 27 80 100 125
1 35 56 93 128
2 42 48 89 108
3 53 70 91 109
4 59 73 86 89
if os.path.exists("P:/optimization_model_reference.xlsm"):
xl=win32.Dispatch("Excel.Application")
xl.Workbooks.Open(os.path.abspath('P:/optimization_model_reference.xlsm'), ReadOnly=1)
xl.Application.Run("P:/optimization_model_reference.xlsm!Excel_Model.run_solver_v2") #This I have in the format ("file_name!sheet_name.macro_name")
xl.Application.Quit()
del xl
解决方案
推荐阅读
- flutter - ChangeNotifierProxyProvider to act as a Selector rather than Consumer
- javascript - Cordova window.print 不适用于通过 inappbrowser 加载的页面
- asp.net - 即使在 Web 配置中设置 60 分钟后,会话超时也过于频繁
- android - 左右两个标题按钮 React Navigation v5
- javascript - TypeError:无法在 App React 路由器上读取未定义的属性“参数”
- certificate - 将 signingCertificateV2 属性添加到 SignedCms
- postgresql - 如何在 Postgres 中正确索引和查询时间序列数据?
- javascript - 缺少从sails.js 文件上传返回的数据
- c++ - 我怎样才能找到素数反转数?
- amazon-web-services - AWS Redshift Distkey 和 Skew