在Excel 2013中使用VBA将工作表复制到工作簿的末尾

我在Excel 2013中工作,有一些麻烦。 我整天在线研究,似乎无法find任何解决我的问题的东西。

我有一个由6张纸组成的Excel文件:格式概要1.1细节1.2细节1.3细节1.4细节

“细节”表格格式都是一样的。 “汇总”表汇总了“详细信息”表中的所有值,并具有各种图表和有用的信息。 “格式”表是我为了使这个文档对于所有不同types的项目更加dynamic和有用而创build的。 这个文件被用来估算项目,所以不同的项目会有不同数量的“细节”表。

所以,我的目标是在“格式”表格中留下一个空白,询问需要多less细节。 当用户键入5时,代码将在工作簿的末尾添加一个名为“1.5 Detail”的工作表,并将其格式与其他“详细信息”工作表相同。 这可能使用VBA吗? 此外,有没有办法使图表和公式包括新标签,当它被添加,而不需要手动添加到一切?

提前致谢!

假设您有三个名为d_1,d_2和d_3的详细工作表。

每个人都有一个名为“劳动”的Excel表格,标题为“成本”。 每个劳动表具有唯一数量的数据行。

在汇总表中,您可以像这样总结它们:

=SUM(d_1:d_3!Labor[Cost]) 

以上将给你所有表中的人工成本总额。 它汇总表中的所有行,不依赖于详细信息表中的任何汇总信息。

所以,如果你添加一个新的细节表,d_4,那么是的例子公式将需要更新。 不过,有一个古老的伎俩来解决这个问题。

使用相同的表格创build两个附加工作表,但每个表中只有一行ZERO值。 调用这些表中的第一个“开始”。 调用这些表中的第二个“结束”。 紧接在第一个明细表之前放置START,并在最后一个明细表之后立即放置END。 现在使两个不可见。

最后将示例公式更改为:

 =SUM(START:END!Labor[Cost]) 

现在当添加新的明细表d_4,d_5,d_6,d_n时,汇总表上的公式不需要改变,但所有的新数据都包含在汇总计算中。

使用ThisWorkbook.Worksheets.Count来计算页数。 然后, if它less,使用Worksheets.AddActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)将其添加到结束。