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