Python:使用win32com.client.dispatch打开工作簿会停用工作簿加载项

时间:2016-01-11 13:19:57

标签: python excel vba excel-vba

我正在尝试从Python运行Excel宏。

我已经使用了这段代码:

import os
import win32com.client

filepath = r"myfilepath"

if os.path.exists(filepath):
    xl=win32com.client.Dispatch("Excel.Application")
    xl.Workbooks.Open(Filename=filepath)
    xl.Application.Run("SendReport")
##    xl.Application.Save() # if you want to save then uncomment this line and change delete the ", ReadOnly=1" part from the open function.
    xl.Application.Quit() # Comment this out if your excel script closes
    del xl

代码工作正常,但我的工作簿使用加载项中的自定义VBA函数。当我使用这种调度方法打开工作簿时,加载项被停用,功能不再起作用。

是否有其他方法可以打开让我的加载项处于活动状态的工作簿?

1 个答案:

答案 0 :(得分:0)

我使用(下面)我的VBA代码+外部连接未停用

double Process(double payable)
{
    var step1Result = Step1(payable);
    var step2Result = Step2(step1Result);
    return Step3(step2Result);
}