提问人:Biplab1985 提问时间:10/29/2023 最后编辑:Biplab1985 更新时间:10/30/2023 访问量:57
自动将公式填充到范围 xlwings 中最后一个占用的单元格
Autofill the Formula to the last occupied cell in a range xlwings
问:
我想将公式拖到单元格的最后一个占用范围,例如excel。 我使用复制粘贴从范围 CN6:CY6 到 CN8:CY8 添加了公式,并带有单元格引用,但现在我想将公式拖动/自动填充到占用范围的其余部分,我该怎么做?
import xlwings as xw
wb=xw.Book("example.xlsb")
wb.sheets[1].range("cn8:cy8").color=None
wb.sheets[1].range("cn8:cy8").font.color = (0, 0, 0)
lastRow = wb.sheets[1].range(8,2).end('down').row
wb.sheets[1].range('CN8:CY8').api.AutoFill(lastRow,
AutoFillType.xlFillDefault)
请注意,我有“从”范围,但没有固定的“到”范围,因为数据可能会不时变化,我使用了最后一行功能来确定最后占用的单元格。如何在“自动填充”代码行中使用 lastrow
答:
0赞
moken
10/30/2023
#1
好的,所以只需在代码中使用 last_row 变量即可。
确保 B 列确实有最后一行,否则返回的值将是工作表的最大行数,1048576。
import xlwings as xw
from xlwings.constants import AutoFillType
xlfile = 'example.xlsb'
with xw.App(visible=False) as app:
wb = xw.Book(xlfile)
wb.sheets[1].range("cn8:cy8").color = None
wb.sheets[1].range("cn8:cy8").font.color = (0, 0, 0)
lastRow = wb.sheets[1].range(8, 2).end('down').row
wb.sheets[1].range('CN8:CY8').api.AutoFill(wb.sheets[1]
.range(f"CN8:CY{lastRow}").api, AutoFillType.xlFillDefault)
wb.save(xlfile)
评论
ws.range('CN8:CY8').api.AutoFill(ws.range("CN8:CY20").api, AutoFillType.xlFillDefault)
wb.sheets[1].range('N8:Y8').api.AutoFill(wb.sheets[1].range("N8:Y20").api, AutoFillType.xlFillDefault)