2015-05-19 105 views
1

我需要一些帮助获取有关此任务的某些指示。查找重复并将相邻单元格复制到

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

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

从记录你的动作开始(*提示* - 使用相对引用)。完成后,点击Alt + F11进入VBE,看看你已经完成了什么以及可以改进的地方。请参阅[如何避免在Excel VBA宏中使用选择](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)获取远离依赖的方法选择并激活以实现您的目标。 – Jeeped

+0

现在,我不知道! – JonYork

+0

如果遇到问题,请回退并编辑您的问题,以包含足够的代码,以便我们可以重现困难,重点帮助应该即将推出。 – Jeeped

回答

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 

注意,当你是一个带/结束随着组内,所有的范围和单元格引用都与一个时间段(例如.句号)前缀。这表明他们是最接近/结束的孩子。

相关问题