在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.Add
和ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
将其添加到结束。