我需要从python脚本调用Excel工作簿中的VBA宏。其他人已随宏提供了Excel工作簿。宏从外部数据库获取更新值,并对数据执行一些相当复杂的处理。我需要这个消息的结果,如果可以避免的话,我真的不想在我的Python脚本中复制它。所以,如果我可以从我的脚本中调用宏,并获取消息结果,那就太好了。
我对COM的所有了解都是从“Win32上的Python编程”中学到的。这本书不错,但对我手头的任务来说还不够。我搜索了一下,但没有找到任何关于如何做到这一点的好例子。有没有人有好的例子,或者可能有一些关于如何寻址/调用VBA宏的框架代码?有关Excel COM接口的一般参考资料(书籍、web链接等)在此也会有所帮助。谢谢。
发布于 2008-12-06 07:56:34
好了,我知道了!感谢您对Application.Run方法的帮助。这些信息,再加上Hammond & Robinson在“Win32上的Python编程”中推荐的"Microsoft Excel Visual Basic参考“--就是我们所需要的。
下面是框架代码:
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
https://stackoverflow.com/questions/345920
复制相似问题