我想刪除列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函數。但是這個問題仍然沒有解決。 –