尝试通过com / pywin32从Python运行Excel-Solver时出错

我试图通过python32在python中运行Excels Solver加载项:

import win32com.client from win32com.client import constants as c app = Dispatch("Excel.Application") app.Visible = True app.Workbooks.Open(r'C:\path\to\testsolver.xlsm') app.Run("runsolver") 

..但得到以下错误:

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

我意识到这是一个古老的,但如果这仍然有价值的问题在这里可能是解决scheme不会自动加载时创buildExcel OLE对象。 按照devise,加载项必须手动加载才能在Excel OLE对象中使用。

您可以通过检查OLE创build的实例并转到“数据”(Data)选项卡,并确认Solver没有出现,像从Windows GUI中打开Excel一样确认它没有加载。

我发现这一点,而试图解决在Delphi代码中的类似问题,如下所述:

CreateOleObject打开的工作簿将不会运行包含Application.Run“Solver.xlam!…”的macros导致错误400

我期望Python的语法是相似的。

Interesting Posts