如果标识符在第1列中匹配,则复制并粘贴单元格

时间:2016-06-17 18:26:41

标签: excel vba excel-vba

我迫切需要能够复制和复制的代码。根据第一列中匹配的数字,将新提取的数据粘贴到跟踪工作表中。

我有两个工作表,“Registry”和“Sheet2”。 Registry用于跟踪,Sheet2有我要传输到Registry的新数据。 我希望将Sheet2中的保险类型数据(col B)复制并粘贴到Registry(col E)中的保险类型列中。但我需要它与col A中的ID匹配,因为我的提取不包括我在Registry中列出的所有ID。

如果有帮助,注册表中数据w / data的范围是row2:row177; Sheet2中的数据范围是第2行:row174

我感谢所有帮助,如果我不够清楚或者您需要更多信息,请告诉我。

谢谢, 凯尔

Sub updateins()

Dim i As Long
Dim j As Long
Sheet1LastRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
Sheet2LastRow = Worksheets("Registry").Range("A" & Rows.Count).End(xlUp).Row

    For j = 2 To Sheet1LastRow
        For i = 2 To Sheet2LastRow
            If Worksheets("Sheet2").Cells(j, 1).Value = Worksheets("Registry").Cells(i, 1).Value Then
                Worksheets("Sheet2").Cells(j, 2).Value = Worksheets("Registry").Cells(i, 5).Value
            Else
            End If
    Next i
Next j
End Sub

1 个答案:

答案 0 :(得分:0)

不确定问题可能是什么。代码对我来说很好。以下是建议的一些小调整:

Option Explicit

Sub updateins()

Dim i As Long
Dim j As Long
Dim Sheet1LastRow As Long
Dim Sheet2LastRow As Long

Sheet1LastRow = Worksheets("Sheet2").Range("A" & Worksheets("Sheet2").Rows.Count).End(xlUp).Row
Sheet2LastRow = Worksheets("Registry").Range("A" & Worksheets("Registry").Rows.Count).End(xlUp).Row
MsgBox "Comparing rows 2 through " & Sheet1LastRow & " on 'Sheet2'" & Chr(10) & _
    "with rows 2 through " & Sheet2LastRow & " on 'Registry'."

For j = 2 To Sheet1LastRow
    For i = 2 To Sheet2LastRow
        If UCase(Trim(Worksheets("Sheet2").Cells(j, 1).Value)) = UCase(Trim(Worksheets("Registry").Cells(i, 1).Value)) Then
            Worksheets("Registry").Cells(j, 5).Value = Worksheets("Sheet2").Cells(i, 2).Value
        End If
    Next i
Next j

End Sub

我只是添加了一个MessageBox,以确保通过列A正确确定了最后一行。