这是我用来尝试将新工作表添加到工作簿中的最后一个位置的VBA代码
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name
Run Code Online (Sandbox Code Playgroud)
我在这个网站上看到了类似的问题.它不起作用.
我在一个循环中执行此操作,并将每个工作表添加到工作表中的第二个位置.永久存在2张纸(信息和摘要),然后我先添加5个称为"test"1到5的纸张.我总是以这个顺序结束纸张:
Info, sheet5, sheet4, sheet3, sheet2, sheet1, Summary
Run Code Online (Sandbox Code Playgroud)
但我想要/期待的是:
Info, Summary, sheet1, sheet2, sheet3, sheet4, sheet5
Run Code Online (Sandbox Code Playgroud)
(循环确实以预期的顺序生成它们,所以问题不在那里.)
如果我在开始之前交换摘要和信息表,那么当我完成时它们就在相反的位置.
我究竟做错了什么?
我已经阅读了openpyxl、xlwt、xlrd、xlutils、xlsxwriter 的文档。我找不到在Excel 工作簿中移动工作表的方法。测试在末尾添加了一个工作表。
具体来说,我有各种各样的日历,['JAN','FEB',...,'DEC']我需要根据需要替换月份。
如果不移动它们,如何对 Excel 工作簿中的工作表进行排序?您可以在指定工作表之后或之前插入工作表吗?
我只能找到一篇关于 SO用途win32com和的帖子Book.Worksheets.Add(After=Sheet);这些模块都没有这种方法似乎很奇怪。
默认似乎在工作簿末尾添加工作表。我可以复制目标文件,直到到达更新的工作表,插入新工作表,然后继续原始副本到最后。(灵感来自这篇文章)