从Python执行Excel宏

时间:2013-07-17 08:04:53

标签: python-3.x pywin32

我在excel中使用快捷键创建了一个宏作为 CTRL + l 。我想使用python3.3

运行这个宏

有人可以帮助我吗?这是我到目前为止所做的:

import win32com.client as win32
 xl = win32.gencache.EnsureDispatch('Excel.Application')
 xl.Visible = 1
 xl.Workbooks.Open("C:\Python33\mac.xlsm")

2 个答案:

答案 0 :(得分:0)

我从未使用EnsureDispatch完成此操作,但这是您使用Dispatch执行此操作的方法

from win32com.client import Dispatch

xlApp = Dispatch('Excel.Application')

result = xlApp.Run("<macro name here>",<the macro variables go here -seperate each one with a comma>) 
# for example:
#result = xlApp.Run("myMacro", "foo","bar")

#and make sure you close the xl
xlApp.Quit()

哦,我在python 2.7上也是如此,(但我怀疑它的重要性因为依赖是win32)

答案 1 :(得分:0)

我试图为Python 3.3应用一个例子。只需添加Application即可获得结果!

from win32com.client import Dispatch 
xlApp = Dispatch('Excel.Application') 
xlApp.Workbooks.Open("C:\Python33\mac.xlsm")
result = xlApp.Application.Run("<macro name here>",<the macro variables go here -seperate each one with a command>)