<p>我想用Python脚本在Excel文件中运行宏。在</p>
<pre><code>import os
import win32com.client
if os.path.exists(""C:\\Users\\siddharth.mungekar\\Desktop\\MemleakTest\\test.xlsm"):
xl = win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(Filename="C:\\Users\\siddharth.mungekar\\Desktop\\MemleakTest\\test.xlsm")
xl.Visible = True
xl.Run('Mem_Leak')
</code></pre>
<p>脚本在打开Excel文件后失败,并给出以下错误:</p>
<blockquote>
<p>C:\Users\siddharth.mungekar\AppData\Local\Programs\Python\Python36\python.exe C:/Users/siddharth.mungekar/PycharmProjects/MacroViaPython/ExcelMacroEnabler.py
Traceback (most recent call last):
File "C:/Users/siddharth.mungekar/PycharmProjects/MacroViaPython/ExcelMacroEnabler.py", line 14, in
xl.Run('Mem_Leak')
File "", line 14, in Run
File "C:\Users\siddharth.mungekar\AppData\Local\Programs\Python\Python36\lib\site-packages\win32com\client\dynamic.py", line 287, in <em>ApplyTypes</em>
result = self.<em>oleobj</em>.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "Cannot run the macro 'Mem_Leak'. The macro may not be available in this workbook or all macros may be disabled.", 'xlmain11.chm', 0, -2146827284), None)</p>
</blockquote>
<p>我试着修改信任中心的设置。在</p>
<p>当另一个Excel文件已经被手动打开时,该代码可以工作。在</p>
<p>我试着打开一个虚拟的Excel文件,然后打开目标Excel文件并运行宏。这没用。必须手动打开虚拟excel文件。在</p>