我想删除列B中已有ID出现在“交易”片。但是,当我使用下面的代码删除行时,不重复的ID行也被删除(最顶层的异常除外)。我的删除代码是否有误?当我使用VBA删除其他工作表中包含重复值的角色时,如何删除不包含重复项的角色
这里是我的代码:
Sub Removeduplicate()
Dim i As Integer
Dim j As Integer
Dim num As Integer
Dim lastCellB As Range
num = 0
For i = 2 To 10000
If ActiveWorkbook.Sheets("Manual").Cells(i, 2).Value > 0 Then
num = num + 1
End If
Next i
ActiveWorkbook.Sheets("Manual").Range("B5000").Select
j = ActiveWorkbook.Sheets("Manual").Cells(Rows.Count, "B").End(xlUp).Row
Do While num > 0
lastvalue = ActiveWorkbook.Sheets("Manual").Cells(j, 2).Value
For i = 2 To 10000
If ActiveWorkbook.Sheets("Trade").Cells(i, 4).Value = lastvalue Then
ActiveWorkbook.Sheets("Manual").Cells(j, 2).EntireRow.Delete
End If
Next i
j = j - 1
num = num - 1
Loop
MsgBox ("Removed")
End Sub
这里是我的数据的屏幕截图 “交易” 片
和 “手动” 片
。
没有图片“手动”,这是最常用的一个。另外你是否尝试按F8,逐一评估步骤,然后找出问题所在? –
您需要摆脱'select'语句......对工作表单元格使用完全限定的引用......您的'if'语句都包含正确的格式,但由于某些原因,其余代码不会。为什么你的编程风格如此不一致? ...一旦你这样做,那么你的代码应该更简单,更容易调试....你的前两个'select'语句没有做任何有用的事情 – jsotola
Jsotola:我重新上传了代码,删除了select函数。但是这个问题仍然没有解决。 –