我正在努力應該是相當直接的事情,但是,我已經閱讀了至少15個這樣做的方法,似乎無法使其工作。刪除行重複數據VBA
下面是一個簡單的數據集:
9:30:01 584.7
9:30:01 590
9:30:01 595
9:30:02 584.51
9:30:03 584.62
9:30:04 584.44
9:30:05 584.05
我只想每秒一行,所以第3行中,只有一個需要保持。我不在乎它是第一個還是最後一個,但是我一直使用的代碼保留了最後一個,在這種情況下是595。
我這樣做的方式是用for循環清除與其下面的行具有相同時間的行的內容。然後我整理整個範圍。
我想有一種簡單的方法可以簡單地刪除額外的行。但是,當我使用範圍上的刪除而不是清除時,它不會刪除所有重複的行。
這是我想要的數據看起來像:
9:30:01 595
9:30:02 584.51
9:30:03 584.62
9:30:04 584.44
9:30:05 584.05
我需要這樣的事情發生的整個工作表。的時間是B列和值列C.
這裏是我使用的代碼,
LastRow = ActiveSheet.UsedRange.row - 1 + _
ActiveSheet.UsedRange.Rows.Count
For RowNum = 2 To LastRow
If (Range("B" & RowNum) = Range("B" & RowNum + 1)) Then
Range("B" & RowNum).EntireRow.Clear
End If
Next RowNum
Range("A2:C" & LastRow).Sort key1:=Range("B2:B" & LastRow), _
order1:=xlAscending, Header:=xlNo
如果你循環底部,那麼你可以立即刪除行。分享你的代碼,我會幫你解決這個問題。 –
@PortlandRunner提供了一個很好的解決方案 - 您也可以爲此使用Range.RemoveDuplicates方法(特別是因爲您的列結構定義得非常好)...以下是MSDN參考:http://msdn.microsoft.com/ en-us/library/office/ff193823(v = office.15).aspx –
@Portland Runner我已添加代碼。你的想法聽起來很聰明。 – mks212