vba - 需要骨架代码从 PythonWin 调用 Excel VBA

标签 vba excel com pywin32

我需要从 python 脚本调用 Excel 工作簿中的 VBA 宏。其他人提供了带有宏的 Excel 工作簿。该宏从外部数据库获取更新的值,并对数据执行一些相当复杂的处理。我需要这种按摩的结果,如果可以避免的话,我真的不想在我的 Python 脚本中重复它。因此,如果我可以从脚本中调用宏并获取按摩结果,那就太好了。

我所知道的有关 COM 的一切都是从“Win32 上的 Python 编程”中学到的。好书,但不足以完成我手头的任务。我进行了搜索,但没有找到任何关于如何执行此操作的好示例。有谁有任何好的例子,或者一些如何寻址/调用 VBA 宏的框架代码?有关 Excel COM 接口(interface)的一般引用(书籍、Web 链接等)在这里也会有所帮助。谢谢。

最佳答案

好的,我明白了!感谢您对 Application.Run 方法的帮助。此信息以及“Microsoft Excel Visual Basic 引用”:http://msdn.microsoft.com/en-us/library/aa209782(office.10).aspx -- 正如 Hammond & Robinson 在“Win32 上的 Python 编程”中所推荐的那样 -- 正是所需要的。

这是骨架代码:

import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(Filename="<your Excel File>",ReadOnly=1)
xl.Application.Run("<your macro name>")
#...access spreadsheet data...
xl.Workbooks(1).Close(SaveChanges=0)
xl.Application.Quit()
xl=0

关于vba - 需要骨架代码从 PythonWin 调用 Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345920/

相关文章:

VBA将自身复制到其他位置

vba - 备份 VBA 项目

c# - 如何从 C# 返回集合对象并在 C++ 中访问它们?

c# - Outlook 2003 - 显示第一次出现的开始/结束日期的重复项

excel - 如何使用 VBA 将关闭的工作簿(保持关闭状态)中的数据复制到主工作簿中?

excel - 从 Excel vba 将“适合”设置为“在 Pdf 中可见”

excel - 在 Excel VBA 中从大型文本文件复制底行

ms-access - Access 查询的 CSV 导出将浮点(单精度/ double )值限制为小数点后 2 位

excel - 从并行循环中访问 Excel 工作簿时出错

php - 在php中禁用弹出消息