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