Excel 宏:比较单独的工作簿列表并链接到相应列中的数据?

Excel 宏:比较单独的工作簿列表并链接到相应列中的数据?
    1. 如何比较来自不同工作簿的两个匹配列表?然后从同一行但另一列检索数据 - (Index&Match 可能适合这种情况)。但放在一起看起来怎么样?它可以在宏中使用吗?
    2. 如何调用/请求要插入的数据的单元格引用而不是数据本身?(驱动器/文件夹/工作簿/工作表:CellReference)

我的情况:

我有一本主工作簿(Master)。Master 非常庞大。它包含许多年度工作表(2001、2002、2003,直至 2010 年)。每个工作表在 A:A 列中都有相同的类别列表。每个工作表中的数据位于 B、C、D 和 E 列中。

我的工作是将 MASTER 中的数据导入 COPY 工作簿。COPY 将有一个工作表,其在 COLUMN A:A 中具有相同的类别列表。

COPY 工作表将对相关年度工作表数据进行分组 - B 列中的所有数据将分组到相邻列中;然后 C 列中的所有数据将分组到下一行中;等等...

主数据库中的数据可以更改,因此我不能仅仅复制和粘贴主信息,我需要链接到它。

哦,我可能要对 30 多个工作簿做这个练习……这就是我对使用宏感兴趣的原因,以便我可以在需要时运行(修改)。

一如往常,非常感谢任何提示、链接或指导

麦克风。

答案1

这确实是 Stack Overflow 的一个问题,但是......

为了问题 1,我强烈建议使用 ADO。它简洁、快速,允许您传递 SQL 请求,并且不需要您打开文件来提取其数据。

这里有一份很好的指导清单:http://www.xtremevbtalk.com/showthread.php?t=217783

它最初看起来很复杂,但它比其他选择简单得多。

为了问题2,如果您尝试链接这些单元格,我建议您避免这样做。当一个工作簿关闭时,可以插入行和列,并且您的引用将完全错误 - 最糟糕的是:您甚至不会意识到这一点,因为它可能仍会提取看起来正确的数据,具体取决于您的数据集。

如果使用 ADO,则可以构建一个函数,以便在每次打开摘要簿(VBA 编辑器中 ThisWorkbook 对象中的 Workbook_Open)时或通过工作表本身上的按钮从源工作簿自动刷新。

相关内容