我正在尝试使用XlWings创建一个简单的用户定义函数,该函数将A1
的单元格值设置为等于B2
@xw.func
def testthis():
cellRange = xw.Range('b2').value
xw.Range('a1').value = cellRange
=testthis()
在Excel中正确显示,但是一旦我按下Enter
,Excel最终冻结,迫使我关闭程序。
同样的代码在Python shell中可以正常工作,所以我不确定为什么它不起作用?
答案 0 :(得分:0)
请参阅quickstart指南。如此处所述,您不应在交互式会话之外的任何内容上使用xw.Range
。
对于UDF,您很少需要使用范围对象。相反,您通常会接受其他单元格的值,然后直接返回结果。要获取过于简单的示例,请执行以下操作:
@xw.func
def testthis(input):
return input
请注意,输入已经是值(在UDF之外,您可以将其写为xw.Range(...).value
)。
您现在可以在A1
中使用这样的函数了:=testthis(B2)