excel - 检查 2 列中是否有重复项,如果是,则替换为新数据或保留旧数据?VBA
问题描述
我的 Excel 文件允许用户上传新报告,每个报告可以包含多个发票(每个发票 = Excel 上的 1 行)。如果用户导入了一份新报告,但它似乎已经根据 2 个标准上传:如果日期和名称已经出现在过去的数据中,则提供替换或保留旧发票的选项。
在此处找到此代码并将其改编为我的工作表: 如何检查 2 列中的重复项并将整行复制到另一张工作表中?
Sub Check()
Dim lw As Long, i As Long
With targetSheet
lw = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 2 To lw
If Application.CountIfs(Range("B" & i & ":B" & lw), Range("B" & i).Text, _
Range("E" & i & ":E" & lw), Range("E" & i)) > 1 Then
MsgBox ("A report was made on [DATE] with [NAME]. Do you want to replace the existing report or cancel?")
End If
Next i
End With
End Sub
当我运行它时,它给了我错误:运行时错误'424':需要对象
我还找到了这个网站:https ://docs.microsoft.com/en-us/office/vba/excel/concepts/cells-and-ranges/prevent-duplicate-entries-in-a-range但不知道如何适应它..
解决方案
尝试做这样的事情,@Jade:
Public Sub Check()
Dim lw As Long, i As Long
Worksheets("SheetName").Activate
lw = ActiveSheet.Range("A1048576").End(xlUp).Row
For i = 2 To lw
If Application.CountIfs(ActiveSheet.Range("B" & i & ":B" & lw), ActiveSheet.Range("B" & i).Value, ActiveSheet.Range("E" & i & ":E" & lw), ActiveSheet.Range("E" & i).Value) > 1 Then
MsgBox "A report was made on [DATE] with [NAME]. Do you want to replace the existing report or cancel?", vbYesNo, "Title of MSGBOX"
Exit For
End If
Next i
End Sub
推荐阅读
- android - 无法将 onClick 分配给 kotlin 中的按钮
- android - 如何从表中获取最后一个rowid
- excel - 后期绑定编译错误:在 Excel VBA 中未定义引用 Outlook 邮件项的用户定义类型
- php - CaBundle open_basedir 限制
- java - 我正在尝试在 exoplayer 中提取 youtube url。我想在日志中提取我的 sparsarray 值
- python - Installing mathplotlib gives "MemoryError"
- c# - 如何在 c# 代码中添加几个表?
- google-sheets - Only show a portion of a live Google sheet
- javascript - Java script pass function with arguments to another function
- java - 我正在创建 java api 来连接 kafka