python打开excel执行vba代码_Python:使用Python运行Excel宏

在尝试通过Python使用win32com模块运行Excel宏时,遇到com_error,提示宏可能不可用或已禁用。已确认宏安全性设置允许运行所有宏,且宏在手动运行时能正常工作。问题可能出在宏不是针对特定工作表定义。代码中包含了打开Excel文件、设置值以及尝试运行宏的步骤。
摘要由CSDN通过智能技术生成

我需要通过python运行一个Excel宏,我总是会得到以下错误:result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146788248), None)

在Excel中,它会给出以下错误:Run-time error 1004:

Cannot run the macro ". The macro may not be available in this workbook or all macros may be disabled.

我的代码如下:xl=win32.Dispatch("Excel.Application")

wb=xl.Workbooks.Open(Filename="Path+MyExcelFile.xlsm", ReadOnly=1)

xl.Visible = True

time.sleep(1)

ws=wb.Worksheets("Sheet1")

ws.Cells(4,2).Value='Value1'

ws.Cells(5,2).Value='Value2'

ws.Cells(1,8).Value='Bool'

time.sleep(10)

xl.Application.Run("MyExcelFile.xlsm!macroname")

result = ws.Cells(3,10).Value

print result

xl.Application.Quit()

del xl

我通过宏安全性启用了所有宏,但宏不是为特定工作表定义的。当然,如果我在Excel中手动运行宏,它就可以正常工作了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值