Xlwings UDF设置单元格值使Excel崩溃

时间:2018-12-24 00:27:13

标签: python xlwings

我正在尝试使用XlWings创建一个简单的用户定义函数,该函数将A1的单元格值设置为等于B2

@xw.func
def testthis():
    cellRange = xw.Range('b2').value
    xw.Range('a1').value = cellRange

=testthis()在Excel中正确显示,但是一旦我按下Enter,Excel最终冻结,迫使我关闭程序。

同样的代码在Python shell中可以正常工作,所以我不确定为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

请参阅quickstart指南。如此处所述,您不应在交互式会话之外的任何内容上使用xw.Range

对于UDF,您很少需要使用范围对象。相反,您通常会接受其他单元格的值,然后直接返回结果。要获取过于简单的示例,请执行以下操作:

@xw.func
def testthis(input):
    return input

请注意,输入已经是值(在UDF之外,您可以将其写为xw.Range(...).value)。 您现在可以在A1中使用这样的函数了:=testthis(B2)