xlwings :: UDF - 自动化错误

时间:2017-07-21 18:50:53

标签: python user-defined-functions xlwings

我正在尝试构建一个xlwings UDF function来计算指定方案的结果。该代码使用Jupyter Notebook(即没有UDF)。但是,当我实现为UDF(使用Windows)时,该函数只返回" Automatisierungsfehler" (automation error)在输入函数的单元格中。因此在导入函数时没有问题,但实际上是在计算......

功能输入:

  • x:具有要用场景值替换的值的单元格
  • y:具有方案值的单元格
  • z:带结果的单元格

这是我的代码:

import xlwings as xw

@xw.func
@xw.arg('x', xw.Range)
@xw.arg('y',xw.Range)
@xw.arg('z',xw.Range)
@xw.ret(expand = "vertical")
def calc_scenario(x,y, z):
    address = x.address
    formula = x.formula

    res = []
    for scenario in y.value:
        x.value = scenario
        res.append(z.value)

    x.formula = formula

    return res

在excel中使用此代码时,我可以毫无问题地导入该函数。使用时,公式(= calc_scenario(...))只返回" Automatisierungsfehler"。

  

相同的代码适用于Jupyter Notebook:

import xlwings as xw

sht = xw.Book("TestStuff.xlsm").sheets[0]

def calc_scenario(x,y, z):
    address = x.address
    formula = x.formula

    res = []
    for scenario in y.value:
        x.value = scenario
        res.append(z.value)

    x.formula = formula

    return res

x = sht.range("C43:H43")
y = sht.range("C47:H49")
z = sht.range("C45")
calc_scenario(x,y,z)

有什么想法吗?

谢谢!

0 个答案:

没有答案