在Excel中将工作表添加到工作簿的末尾(正常方法不起作用?)

Jac*_*xel 19 excel vba excel-vba

这是我用来尝试将新工作表添加到工作簿中的最后一个位置的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)

(循环确实以预期的顺序生成它们,所以问题不在那里.)

如果我在开始之前交换摘要和信息表,那么当我完成时它们就在相反的位置.

我究竟做错了什么?

Sid*_*out 35

试试这个

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
Run Code Online (Sandbox Code Playgroud)

  • @SiddharthRout对不起你误解了我,我的意思是你在SE上回答了我约50%的问题. (3认同)

Tim*_*ams 7

mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name 
Run Code Online (Sandbox Code Playgroud)

应该是

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name 
Run Code Online (Sandbox Code Playgroud)