从不同的工作簿复制并粘贴到MasterSheet

时间:2018-11-24 11:50:53

标签: excel vba copy paste

我有一本工作手册,每个国家(例如法国,比利时等)有8张纸。除了这些工作表之外,我还有“ Mastertab”和“ Database”。

国家工作表的创建方式相同(它们具有相同的模板)。这些模板用于跟踪费用(例如,法国可能有10个费用,比利时为3,英国为81)。

我想做的是创建一个宏(因为如果我想避免空白行,我认为用公式是不可能的)

  1. 找到最后一行,其中K列中的任何数据/值。
  2. 选择所有数据(将在点1和B-P列中指示的行)。
  3. 将此选择粘贴到Mastertab。
  4. 继续对其他国家/地区的表格执行1-3,但要知道数据应粘贴在前一个国家/地区的正下方(因此它必须找到第一个空白行并将数据粘贴到此处)。

示例: 每个国家/地区的第一行数据是18。这是发布费用第一行的地方。用户将仅填写K列中的数据(所有其他列均填充有公式,vlookups等)

假设我在法国有3笔支出,我希望Excel选择B18:P20并粘贴到单元格B18中的Mastersheet中。*

*下一次粘贴到母版表中的内容应来自单元格B21。

希望很清楚。 :)

预先感谢您, 马雷克

1 个答案:

答案 0 :(得分:0)

如果您尝试使用公式来执行此操作,则肯定会扩展Excel公式的限制。

您可以使用VBA来执行此操作,但是您可能需要用户在每次输入时触发宏。如果您需要对母版进行动态更新,那将变得更加困难。

我认为最干净的方法是拥有一个宏,该宏在每次运行宏时从头开始构建主列表,即删除主表,然后重新创建它。这样,您不必在每次添加新行时都重新组织主输出。这将需要大量其他逻辑。

如果您要在多用户环境中进行并发更新,则此方法将不起作用,因为您需要一个额外的服务器来处理每个用户之间的消息传递。此时,最好不要使用Excel。

如果每个用户都将添加他们的数据,请运行宏并将表单发送给下一个可以构筑宏方法的用户。

从非常高的水平来看: