如果满足条件,则比较两个不同的Excel文件并将数据从一个复制到另一个

时间:2017-07-07 12:26:02

标签: excel vba excel-vba ms-office

所以我有两个文件。 File1和File2。两者都有相同的列,但一个填充,一个不填。

如果File1的一行中的File2与名称(假设A1)匹配,我想要这样做,将行Q,R和S复制到File2。

因此,如果在File1的一行中找到A1(File2)(假设在A34中),那么我想将File1的Q34,R34和S34复制到File2。

我认为第一部分需要VLOOKUP,所以我认为需要将其纳入VBA。

我应该前往的任何帮助,想法或大方向都会很棒。

1 个答案:

答案 0 :(得分:1)

这应该做你想要的。将宏放在包含所有已填充列的工作簿中,并将路径链接更改为要将数据复制到的第二个工作簿文件。如果您的工作表名称不同,您可能还需要从“Sheet1”更改工作表名称。

Sub copyOnMatch()


Dim i As Long
Dim j As Long
Dim wbk1, wbk2 As Workbook

Set wbk1 = ThisWorkbook.Sheets("Sheet1")
WBK1Range = wbk1.Range("A" & Rows.Count).End(xlUp).Row
Set wbk2 = Workbooks.Open("Your File Path Here") 'Your Filepath here
WBK2Range = wbk2.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row

    For j = 1 To WBK1Range
        For i = 1 To WBK2Range
             If wbk1.Cells(j, 1).Value = wbk2.Worksheets("Sheet1").Cells(i, 1).Value Then
                wbk2.Worksheets("Sheet1").Cells(j, 17).Value = wbk1.Cells(i, 17).Value 'Copies over Column Q 
                wbk2.Worksheets("Sheet1").Cells(j, 18).Value = wbk1.Cells(i, 18).Value 'Copies over Column R 
                wbk2.Worksheets("Sheet1").Cells(j, 19).Value = wbk1.Cells(i, 19).Value 'Copies over Column S
            Else
            End If
    Next i
Next j



End Sub