【问题标题】:Excel Macro: Copy specific cells from multiple sheets to specific cells in separate sheetExcel宏:将多个工作表中的特定单元格复制到单独工作表中的特定单元格
【发布时间】:2015-08-05 00:13:33
【问题描述】:

我是 Excel 宏的新手,但最近试用了它们,发现它们非常有用。问题是我的编程知识仅限于 Matlab,所以我想知道是否有人可以为以下问题建议一个宏。

我已经收集了研究数据,我想将它们全部转移到一个 Excel 电子表格中。每张表都有关于参与者的数据,共有 67 张表。有用的宏是在 67 张表中查找相同的五个单元格(总是 D36:D40)并将其复制到新表中一行的特定部分(AKx、ALx、AMx、ANx、AOx其中 x 是下一行,从 3 开始,用于复制每个工作表数据)。

我觉得通过针对我的具体情况提供的代码,我会更容易理解代码的作用,因此我可以慢慢开始学习一些宏代码。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您不需要宏。您可以只在单元格引用中包含文件名。

    公式如下:

    ='file:///C:/[path and filename].xlsx'#$'[sheetname]'.G22
    

    完成此操作的最简单方法是打开两个工作表。在您的主工作表中,在另一张工作表中键入“=”和 ALT-TAB,单击您要引用的单元格。击回。该单元格中的值将出现在您的主工作表中。

    因此,您的主文件可以指向这 60 张不同的表格,以及您想要的任何单元格。每当您更新这些文件时,您的主工作表将始终是最新的。

    【讨论】:

    • 感谢您的回复。好像我误会了什么。我继续主文件并输入 = 然后转到另一个电子表格,所有工作表都已经用我之前的 ALT-TAB 突出显示,然后我选择我想要的单元格。最终结果只是主文件的第一个现在与 67 个结果文档之一中的一个单元格具有相同的值。因此我需要重复这 67 次。我显然误解了一些东西。任何想法这可能是什么? "='[WM+VSTM_Results_All.xlsm]01'!$D$36" - 这是最终参考的示例。谢谢
    • 是的。您将不得不重复该操作 67 次。或者,为了更简单,您可以手动更改单元格中的参考文件名。我只建议了让您入门的快捷方法。结果是,一旦你的参考资料都设置好了,你的“主”文档就完成了。
    • 好的,我明白了,虽然我已经准备好这样做,但小问题是我要从 67 个结果文档的每一个中复制另外 9 个单元格,这意味着我将这样做 603 次。此外,虽然我同意“主”文档总是会得到更新是很好的,但结果文档中的值不会改变,因为这是来自研究的数据。因此,我可以将这 603 次更改,但我觉得我没有达到我想要减少输入数据时间的目的。我的其他研究同行这样做,但我对使用编码来节省时间的想法很感兴趣。那么现在需要宏吗?
    • 在任何一种情况下,您都必须手动引用这些文件,无论是在宏中键入它们,还是将它们放入单元格公式中。我建议将工作表中的所有 9 个单元格做一次,然后复制它们。然后进行“搜索和替换”以引用文件名并立即更改它们。那样的话,它会以惊人的速度发展。
    • 好的好主意 - 我喜欢这个。所以我只是去尝试一下,一切都准备好了,这意味着我在一个名为“='[WM+VSTM_Results_All.xlsm]24'!$A$44”的列中创建了所有单元格,它引用了第 24 个参与者的数据。我对所有 9 列都这样做了,以便所有列都引用一个不同的单元格。然后我突出显示第一行并尝试将 "]24'!$A$" 替换为 "]01!$A$" 以便所有列都更改为第一个参与者(即,由 $44 标识的列单元格意味着它们中的所有九个都将更改)。但是,replace 似乎没有包含实际 excel 表中没有的参考信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多