在两个工作簿中匹配数据并复制特定的单元格

时间:2019-11-11 15:07:20

标签: excel vba

希望大家都过得很好。

我有一个问题会让我哭泣。基本上,我有两个名为main和checker的工作簿。每个人都有单张同名的床单。 chekcer工作簿的数据存储在H2中

在主工作簿中,A列具有参考编号。我要实现的是,当我在检查器的A列中键入参考号并单击按钮时,代码将检查该参考号是否存在于主表的A列中,如果存在,则将数据从检查器的H2复制到主工作簿列中

我不想复制粘贴到目前为止我所做的事情,因为这太可惜了。如果有人愿意提供帮助,我将感到很高兴。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,则您需要类似的内容(阅读注释并在需要的地方放置正确的数据)。

Sub ChechReferences()
Dim MainSht As Worksheet
Dim CheckSht As Worksheet

Set MainSht = Workbooks("Main_workbook_name").Sheets("Sheet_name") 'Replace Main_workbook_name and Sheet_name with proper names
Set CheckSht = Workbooks("Check_workbook_name").Sheets("Sheet_name") 'Replace Main_workbook_name and Sheet_name with proper names

Dim ReferencesRangeMain As range
Dim ReferencesRangeChecker As range
Dim CellChecker As range
Dim CellMain As range

With MainSht
    Set ReferencesRangeMain = range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
End With

If ReferencesRangeMain.Rows.Count = 1 Then
    If ReferencesRangeMain.Cells(1, 1) = "" Then Exit Sub
End If

With CheckSht
    Set ReferencesRangeChecker = range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
End With

If ReferencesRangeChecker.Rows.Count = 1 Then
    If ReferencesRangeChecker.Cells(1, 1) = "" Then Exit Sub
End If


For Each CellChecker In ReferencesRangeChecker
    For Each CellMain In ReferencesRangeMain
        If CellChecker = CellMain Then

            'This is for copying value from column H and row of cell with reference from checker sheet
            'to the column E and row where the reference was found on the main sheet
            'e.g. if you type reference to A5 on a checker sheet, and reference will be found at A8 on
            'the main sheet - then cell H5 on check sheet will be copied to I8 on a main sheet
            CheckSht.Cells(CellChecker.row, 8).Copy Destination:=MainSht.Cells(CellMain.row, 5)

        End If
    Next
Next

End Sub

无论如何,我认为您会找到不需要的复制范围。