防止重复记录被附加到Excel中,使用最新值

时间:2013-11-19 15:28:00

标签: excel vba ms-office

我有一个非常简单的Excel工作簿,其中包含大约10列库存信息。我有三个移动扫描仪将数据导出到单个工作簿。我将它设置为“追加”,以便数据不会被覆盖,而是添加到工作簿中。如何防止基于AssetId列将重复记录添加到工作簿中,如果发现重复,我希望最新的记录用新值覆盖记录。

1 个答案:

答案 0 :(得分:1)

假设您希望在更改工作表并在最后添加最新数据后自动执行此操作:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim assetIDRange, c3ll as Range
'all you need is an if statement here then.
If sdsheet.Cells(Rows.Count, 1).End(xlUp).Row <= 2 Then
    Exit Sub
Else
    lastRow = sdsheet.Cells(Rows.Count, 1).End(xlUp).Row
End If

Set assetIDRange = thisworkbook.sheets("SheetName").Range("A2:A" & lastRow - 1)

newAssetID = thisworkbook.sheets("SheetName").cells(lastRow, 1)

For each c3ll in assetIDRange
    if c3ll.value = newAssetID then
        c3ll.entirerow.delete
        exit sub
    end if
next c3ll

End Sub

务必将"SheetName"更改为工作表的实际名称。这必须在工作表中完成,而不是新模块。

如果您希望在旧行中更改数据而不是在if语句内部使用c3ll.row找到旧行并更改数据方式。