【问题标题】:How to use VBA to VLOOKUP across workbooks, sheet by sheet如何在工作簿中逐页使用 VBA 到 VLOOKUP
【发布时间】:2016-02-25 21:29:08
【问题描述】:

提前致歉 - 我对 VBA 比较陌生

我每天生成一份报告,其中包含几张工作表(比如说 Sheet1、Sheet2、Sheet3)。这些工作表有表格,我可以在其中跟踪每个订单行的注释,并且我想每天查看注释。

我面临的问题:我需要能够对 Sheet1、Sheet2 和 Sheet3 重复此操作,从前一天的相应 Sheet1、2、3 中提取,并每天重复此操作。

有没有办法让 vlookup 识别我的活动工作表名称,例如Sheet3,然后回顾前一天的工作簿并从该 Sheet3 中提取?

这是可以做到的吗?

感谢您的帮助

【问题讨论】:

  • 有很多方法可以做到这一点。不幸的是,您在一篇文章中提出了几个问题(无论您是否知道)。 Stack Overflow 是针对更有针对性的问题。我建议您尝试录制一个宏来完成您正在尝试做的事情。
  • 您好 n8 感谢您的回复 - 我将编辑我的原始帖子以反映我正在尝试解决的具体问题
  • @n8。 Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("D2").Select ActiveCell.FormulaR1C1 = _ "=VLOOKUP([@Column1],'[PLS DMD 022416.xlsm]Sheet3'!C3:C4,2,FALSE)" Range("D3").Select 这是我目前正在使用的,但这仅适用于从 Sheet3 拉到新的 022516 Sheet3 上。这也不允许我在第二天从(PLS DMD 022616)重复这个,因为它不会引用 022516,但仍然是 022416
  • 你要逐个单元格吗?
  • @n8。我正在尝试逐页进行,vlookup 应该为每一行向下填充

标签: vba excel macros vlookup


【解决方案1】:

在你到达你想要去的地方之前,你需要一个一致的起点。我会创建一个新的工作簿并在那里保存你的逻辑。您不需要将宏放在数据所在的工作簿中。

像这样:

如果您想更改控制工作簿的外观,最好使用命名范围,并且您可以为文件名创建公式,以便它们默认为您的当前日期和前一个工作日。

代码将启动两个工作簿。希望这对您来说是一个有效的起点,并让您了解如何继续。

Sub mergeThese()

    path_New = Range("path_New")
    path_Old = Range("path_Old")
    file_New = Range("file_New")
    file_Old = Range("file_Old")

    Workbooks.Open path_Old & file_Old
    Workbooks.Open path_New & file_New

End Sub

【讨论】:

  • 嗨@n8。这是我工作的好地方 - 我想再次表达我的感激之情!
  • 如果您遇到问题,请告诉我。并给我一个赞成票!我喜欢积分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多