Excel:为每行创建一个新工作表

时间:2010-01-20 13:22:51

标签: excel excel-vba spreadsheet vba

在Excel工作表中,我有大约30行x 100列数据。每行代表不同的“客户”。对于每个客户,我都会创建一个通过电子邮件发送给他们的摘要表,其中还包含我的主页中的所有信息

我的问题如下,当我向主表添加新行并使用适当的数据填充新行时,有没有办法让excel基于某些模板表创建新工作表?

3 个答案:

答案 0 :(得分:3)

我会至少向你提出我对你的需求的看法,我的看法。然而,这不是一个“随时可用”的解决方案,只是关于如何做到这一点的一些想法。


据我所知,无法在Excel中跟踪行的插入。因此,您需要在按钮上激活VBA功能,例如。 实际上,请参阅Lunatik的回答。

此函数将遍历主工作表中的所有行,并在必要时创建新工作表(您最好需要每个客户端的唯一ID,它可能是主工作表上的简单索引,具体取决于行) 。

您首先会创建具有特定名称的模板表,并最终将其隐藏(不在可见选项卡中)。当我说该函数会创建时,它实际上会复制这个模板表并给它一个唯一的名称(我之前提到过的id)。您可以在this link找到复制工作表的方法。

要做的第二个操作是将数据从主表中的行放到模板表中(如果我正确理解了您的要求),这在VBA中并不是很复杂。

答案 1 :(得分:2)

如果您在添加行时需要自动,那么您需要使用Worksheet_Change事件来捕获新行的完成。

然后,这将从模板生成一个新工作簿,复制必要范围,然后将新文件保存到某处,就像Gnoupi所说的那样

所有这一切对于VBA来说都是相对微不足道的,但不幸的是,如果你不熟悉VBA,那么就不是一个简单的例子“Do X然后在Excel中执行Y”所以我认为你可能很难,即使发布了示例代码这里。

即使我创建了一个虚拟模型,至少在功能上做了你需要的模型,如果你不习惯以编程方式使用Excel,那么根据你的特定需求定制它可能会很困难。

修改
我已经创建了一个非常的简单演示,说明了它是如何工作的:http://drop.io/4clxof3 - 注意这个例子不包括添加新行的事件处理,几乎没有验证或错误处理并对几乎所有事情做出彻底的假设(!)

如果您觉得使用它是开发自己的解决方案的基础,那就太棒了。如果整个VBA事情对你来说很陌生,那么可能是时候召唤增援部队了:)

答案 2 :(得分:0)

我想知道是否有可能没有错误捕获。只需要一个VBA代码,它可以获取Excel文档的每一行 - 为每行创建一个文件,然后在最后将文件夹中的总文件合并为一个文件?

我知道听起来很奇怪..但这可能吗?