将工作簿内的工作表移至末尾[重复]

2023-12-19

使用 xlwings,我试图将工作簿中的工作表移动到末尾。例如,工作簿包含以下工作表的集合:
Sheet1, Sheet2, Sheet3

如何将 Sheet1 移到 Sheet3 之后以获得以下顺序?
Sheet2, Sheet3, Sheet1

如果我使用ws1.api.Move(Before=ws3.api)Before参数该行按预期工作,但它不与After https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.move#parameters范围。参见示例代码:

import xlwings as xw

wb = xw.Book("test.xlsx")

ws1 = wb.sheets['Sheet1']
ws3 = wb.sheets['Sheet3']

ws1.api.Move(After=ws3.api)

我自己找到了解决方案,这个问题已经有答案了here https://stackoverflow.com/a/52694180/13968392。你必须添加None之前After范围:

import xlwings as xw

wb = xw.Book("test.xlsx")

ws1 = wb.sheets['Sheet1']
ws3 = wb.sheets['Sheet3']

ws1.api.Move(None, After=ws3.api)
# Or: ws1.api.Move(Before=None, After=ws3.api)

严格来说,这个问题似乎与 pywin32 比与 xlwings 更相关,因为显然.api访问底层 pywin32 对象,如所述here https://docs.xlwings.org/en/stable/missing_features.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将工作簿内的工作表移至末尾[重复] 的相关文章

随机推荐