我正在尝试构建一个xlwings UDF function
来计算指定方案的结果。该代码使用Jupyter Notebook(即没有UDF)。但是,当我实现为UDF(使用Windows)时,该函数只返回" Automatisierungsfehler" (automation error
)在输入函数的单元格中。因此在导入函数时没有问题,但实际上是在计算......
功能输入:
这是我的代码:
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)
有什么想法吗?
谢谢!