【问题标题】:Find duplicate and copy adjacent cell into查找重复项并将相邻单元格复制到
【发布时间】:2015-05-20 12:24:00
【问题描述】:

我需要一些帮助来确定这项任务的方向。

我有两个包含大量信息的电子表格转储。我需要将它们组合成一张有条理的工作表。

电子表格 A 具有文件路径(通过硬盘驱动器),需要保留大量附加信息。 电子表格 B 具有文件路径(通过硬盘驱动器),对于内容管理系统中的文件,则具有 CMS 中的路径。

我想将电子表格 B 复制到电子表格 A 中的工作表 2 中,然后运行一个宏来搜索匹配值(通过硬盘驱动器到文件的路径),并在相同的地方复制工作表 B 的相邻值(路径在 CMS 中)并将其复制到电子表格 A 的相应单元格中。

我有一个 vlookup 函数,它完全符合我的需要,但我该如何着手并将其放入宏中运行?

=VLOOKUP(H1,A:B,2,FALSE)

如何将其放入返回值的宏中,而不仅仅是将公式放入单元格中?

Sub PCMSLookup()
    Dim LastRow As Long
    LastRow = Range("B" & Cells.Rows.Count).End(xlUp).Row
    Range("J15:J" & LastRow).Formula = "=VLOOKUP(B15,'PCMS-dump'!A:B,2,FALSE)" 
End Sub

【问题讨论】:

  • 首先记录您的操作(提示 - 使用相对引用)。完成后,点击 Alt+F11 进入 VBE 并查看您所做的工作以及可以改进的地方。请参阅How to avoid using Select in Excel VBA macros,了解摆脱依赖 select 和 activate 来实现目标的方法。
  • 现在,我不知道!
  • 如果您遇到问题,请返回并编辑您的问题以包含足够的代码,以便我们可以重现困难,并且应该会提供重点帮助。
  • 如何将其放入返回值的宏中,而不仅仅是将公式放入单元格中? Sub PCMSLookup() Dim LastRow As Long LastRow = Range("B" & Cells.Rows.Count).End(xlUp).Row Range("J15:J" & LastRow).Formula = "=VLOOKUP(B15,'PCMS -dump'!A:B,2,FALSE)" End Sub 谢谢

标签: vba excel


【解决方案1】:

将值放入单元格的最快方法是阻止公式,然后将公式恢复为返回值。

Sub PCMSLookup()
    Dim LastRow As Long
    with sheets("Sheet1")   '<-set this worksheet reference properly
        LastRow = .Range("B" & Cells.Rows.Count).End(xlUp).Row
        with .Range("J15:J" & LastRow)
          .Formula = "=VLOOKUP(B15, 'PCMS-dump'!A:B, 2, FALSE)" 
          .cells = .value2
        end with
    end with
End Sub

请注意,当您在 With/End With 分组中时,所有范围和单元格引用都以句点为前缀(例如 .句号)。这表明它们是最接近 With/End With 的子代。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多