找到重复并复制相邻的单元格

时间:2015-05-19 17:00:27

标签: excel vba excel-vba

我需要一些帮助来完成这项任务。

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

电子表格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

1 个答案:

答案 0 :(得分: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分组时,所有范围和单元格引用都以句点为前缀(例如.句号)。这表明他们是最接近/结束的孩子。