excel - 从不同的工作簿复制并粘贴到 MasterSheet
问题描述
我有一本工作簿,每个国家(即法国、比利时等)有 8 张纸。除了这些表之外,我还有“Mastertab”和“Database”。
国家表的创建方式相同(它们具有相同的模板)。这些模板用于跟踪费用(例如,法国可能有 10 项费用,比利时 3 和英国 81)。
我想做的是创建一个宏(因为我认为如果我想避免空白行,公式是不可能的)它将:
- 查找 K 列中任何数据/值的最后一行。
- 选择所有数据(将在点 1 和列 BP 中指示的行)。
- 将此选择粘贴到主选项卡。
- 继续为其他国家/工作表做 1-3 知道数据应该粘贴在前一个的下方(因此它必须找到第一个空白行并将数据粘贴到那里)。
示例:每个国家/地区数据的第一行是 18。这是发布费用的第一行的地方。用户将只填写 K 列中的数据(所有其他列都用公式、vlookup 等填充)
假设我有 3 笔法国费用,我希望 Excel 选择 B18:P20 并粘贴到单元格 B18 的 Mastersheet 中。*
* Mastersheet 中的下一次粘贴应来自单元格 B21。
希望很清楚。:)
提前谢谢你,马雷克
解决方案
如果您尝试使用公式来执行此操作,那么您肯定会超出 Excel 公式的限制。
您可以使用 VBA 来执行此操作,但您可能需要用户在每次输入时触发宏。如果您需要动态更新主服务器,那么这将再次变得更加困难。
我认为最干净的方法是使用一个宏,每次运行宏时从头开始构建主列表,即删除主表,然后重新创建它。这样您就不必在每次添加新行时重新组织主输出。这将需要很多额外的逻辑。
如果您正在使用并发更新的多用户环境,那么这种方法将不起作用,因为您需要额外的服务器来处理每个用户之间的消息传递。此时,最好不要使用 Excel。
如果每个用户都将添加他们的数据,运行宏并将工作表发送给下一个用户,您可以编造一个宏方法。
从一个非常高的水平:
- 创建一个宏来协调下面的所有内容
- 删除母版中的所有内容(如果需要,MasterSheetName.Cells.ClearContents 将保留格式)
- 创建一个索引,以跟踪主工作表中最后一行的数据。这将从 1 开始
- 遍历每个国家/地区表
- 遍历 K 列以查找值
- 使用 VBA 遍历 Excel 中的填充行
- 在此示例中,他们正在查看 A 列。您可以将 sh.Cells(row,1) 中的 1 替换为 sh.Cells(row,11)
- 将数据复制到主选项卡
推荐阅读
- python - 在 Python 中对时间值列表求和
- java - 添加多个图像作为电子邮件附件
- sass - 如何在 SASS [使用@each 循环] 中使用“-”连接间隔单词
- powerbi - DAX函数从维度获取特定值?
- javascript - 如何用 vb.net 替换网页上的选择内容
- python - 我们可以在 XGBoost 中设置每个叶子的最小样本(就像在其他 GBM 算法中一样)?
- python - numba.core.errors.CompilerError:对象模式管道失败(步骤:对象模式前端)
- android - AlertDialog 上不需要的顶部填充
- java - 有人可以让我了解这个程序的流程吗?
- vue.js - 在 vuejs3 中使用 vuejs vee-validate 和组合 api 时编写最少代码的最佳实践