如何 return 从 xlwings 函数到 Excel 的范围对象,以便它可以在公式中使用?
How to return a range object from an xlwings function to Excel so that it can be used in formulas?
我正在尝试在 xlwings 中创建一个简单的函数,它采用单元格形式的范围对象,计算出该单元格列中带有数据的最后一个单元格是什么,然后 return s 从单元格到最后一个有数据的单元格的范围。然后我希望能够在 Excel.
的公式中使用这个范围
我的问题是我无法将 return 值设为 excel 可以使用的可用范围对象。我该怎么做?
我的函数是(函数 colnum_string
只是将数字列转换为 excel 列字母):
@xw.func
@xw.arg('start', 'range')
@xw.ret('end_range', 'range')
def CELLTOEND(start):
column = colnum_string(start.column)
row = start.row
sheet = start.sheet
end_row = xw.sheets[sheet].range(column + str(xw.sheets[sheet].cells.last_cell.row)).end(
'up').row + 1
end_range = xw.Range(column + str(row) + ":" + column + str(end_row))
return end_range
此函数给出了编译错误:xlret() 接受 0 到 1 个位置参数,但给出了 2 个
我也尝试不创建 end_cell
作为 Range 对象,但无济于事,最后 returning 为 end_cell.formula
,return 范围,但如果该范围包含比方说 1-7 的数字,然后我不能对其使用 SUM 并得到 28
的结果
我最终这样做了,这似乎适合我的情况:
@xw.func
@xw.arg('start', 'range')
@xw.ret(transpose=True)
def CELLTOEND(start):
end=start.end('down')
end_range=xw.Range(start,end)
return end_range.value
我正在尝试在 xlwings 中创建一个简单的函数,它采用单元格形式的范围对象,计算出该单元格列中带有数据的最后一个单元格是什么,然后 return s 从单元格到最后一个有数据的单元格的范围。然后我希望能够在 Excel.
的公式中使用这个范围我的问题是我无法将 return 值设为 excel 可以使用的可用范围对象。我该怎么做?
我的函数是(函数 colnum_string
只是将数字列转换为 excel 列字母):
@xw.func
@xw.arg('start', 'range')
@xw.ret('end_range', 'range')
def CELLTOEND(start):
column = colnum_string(start.column)
row = start.row
sheet = start.sheet
end_row = xw.sheets[sheet].range(column + str(xw.sheets[sheet].cells.last_cell.row)).end(
'up').row + 1
end_range = xw.Range(column + str(row) + ":" + column + str(end_row))
return end_range
此函数给出了编译错误:xlret() 接受 0 到 1 个位置参数,但给出了 2 个
我也尝试不创建 end_cell
作为 Range 对象,但无济于事,最后 returning 为 end_cell.formula
,return 范围,但如果该范围包含比方说 1-7 的数字,然后我不能对其使用 SUM 并得到 28
我最终这样做了,这似乎适合我的情况:
@xw.func
@xw.arg('start', 'range')
@xw.ret(transpose=True)
def CELLTOEND(start):
end=start.end('down')
end_range=xw.Range(start,end)
return end_range.value