在Excel中将工作簿添加到工作簿的末尾(常规方法不起作用?)
这是VBA代码即时通讯使用尝试添加到工作簿中的最后一个位置的新工作表
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name
我在这个网站上看到类似的问题。 它不工作。
我在一个循环中执行此操作,并将每个工作表添加到工作表中的第二个位置。 有2张是永久存在的(信息和摘要),然后在前面添加5个更多的称为“testing”1到5.我总是以这样的顺序结束:
Info, sheet5, sheet4, sheet3, sheet2, sheet1, Summary
但是我想要的/期望的是:
Info, Summary, sheet1, sheet2, sheet3, sheet4, sheet5
(循环确实以预期的顺序生成它们,所以问题不在那里)
如果我在开始之前交换总结和信息表,那么当我完成时,他们会在相反的地方。
我究竟做错了什么?
尝试这个
mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name
应该可能是
mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
请务必完全符合您的工作簿参考的工作表的资格!
mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
一个常见的错误是
mainWB.Sheets.Add(After:=Sheets.Count)
这导致错误1004.虽然从官方文档中根本不清楚,但事实certificate,“After”参数不能是整数,它必须是对同一工作簿中工作表的引用。