Excel 查找记录并更新

Excel 查找记录并更新,excel,vba,Excel,Vba,我有一些excel表格,用户必须在表格2中插入数据列表。 然后用户点击按钮,sheet1根据sheet2中的数据插入进行更新 此代码将查找工作表2中是否缺少数据,然后正确插入数据。 我还需要对现有记录进行更新。 sheet1上的现有数据已添加带有注释的manuel列,这些注释不应在数据更新时删除 表1中的数据位于C到N列之间-键位于J Dim iLast As Long Dim iCounter As Integer iLast = Sheets(2).Range("I" &

我有一些excel表格,用户必须在表格2中插入数据列表。 然后用户点击按钮,sheet1根据sheet2中的数据插入进行更新

此代码将查找工作表2中是否缺少数据,然后正确插入数据。 我还需要对现有记录进行更新。 sheet1上的现有数据已添加带有注释的manuel列,这些注释不应在数据更新时删除

表1中的数据位于C到N列之间-键位于J

    Dim iLast As Long
Dim iCounter As Integer

iLast = Sheets(2).Range("I" & Application.Rows.Count).End(xlUp).Row

Dim rng As Range

For iCounter = 2 To iLast
    Set rng = Sheets(1).Range("J:J").Find(Sheets(2).Range("I" & iCounter).Value)

    If rng Is Nothing Then
        Sheets(2).Range("B" & iCounter & ":" & "M" & iCounter).Copy
        Sheets(1).Range("C" & Sheets(1).Range("J" & Application.Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteAll
        Range("B2").Select

        'Insert mailto link
        Selection.Copy
        Sheets(1).Range("B" & Sheets(1).Range("J" & Application.Rows.Count).End(xlUp).Row).Select
        'Range("B3").Select
        ActiveSheet.Paste
        ActiveSheet.Paste
        Application.CutCopyMode = False
    Else

    'MsgBox "update existing row with new data - how to"

    End If

Next iCounter 

您应该能够以与添加新行类似的方式完成此操作

如果使用xlPasteValues而不是xlPasteValues,则不应影响工作表1中的所有注释

假设您只需要复制值,并且没有额外的格式或注释需要复制

我不太清楚你想要达到什么,这让我觉得有点困难,但我想这就是你想要做的

Dim iLast As Long
Dim iCounter As Integer

iLast = Sheets(2).Range("I" & Application.Rows.Count).End(xlUp).Row

Dim rng As Range

For iCounter = 2 To iLast
    Set rng = Sheets(1).Range("J:J").Find(Sheets(2).Range("I" & iCounter).Value)

    If rng Is Nothing Then
        Sheets(2).Range("B" & iCounter & ":" & "M" & iCounter).Copy
        Sheets(1).Range("C" & Sheets(1).Range("J" & Application.Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteAll
        Range("B2").Select

        'Insert mailto link
        Selection.Copy
        Sheets(1).Range("B" & Sheets(1).Range("J" & Application.Rows.Count).End(xlUp).Row).Select
        'Range("B3").Select
        ActiveSheet.Paste
        ActiveSheet.Paste
        Application.CutCopyMode = False
    Else
        Sheets(2).Range("B" & iCounter & ":" & "M" & iCounter).Copy
        Sheets(1).Range("C" & rng.Row).PasteSpecial xlPasteValues
    End If

Next iCounter

这段代码只搜索键,如果它不存在,则添加一个包含数据的新行。然后对表1中的数据进行排序,这就是我需要帮助的原因。如何查找和定位需要更新的字段?能否提供工作簿的示例?(图片/样本数据或文件等)。除非第2页中有真正不同的内容,否则如果可以在此处下载blockexcel文件,它应该是第一个文件的近似副本