當有一串資料需要檢測是否有重複值時,可使用VBA撰寫程式處理,以下範本各位可參考,裡面我們順便題一下另一種迴圈方式:
Sub Day9()
'A欄資料複製到B欄後,排序B欄
Sheets("Day9").Select
Columns(1).Copy
Columns(2).PasteSpecial xlPasteAll
Columns(2).Sort key1:=Range("B1")
'設定B1為現在的儲存格位置
Set currentCell = Range("B1")
'使用do..loop迴圈檢測現在的儲存格位置是否為空值
'空值就停止,不是空值就跟下個儲存格對照
'若是相同值,則刪除現在的除存格
'最後再將現在儲存格設定為下個儲存格,以便繼續對照
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.Delete xlShiftUp
End If
Set currentCell = nextCell
Loop
End Sub
執行前
執行後
PS:這裡可以使用Do...Loop的原因是因為已經經過排序,即使有空值,也是排到最後面去,所以可用此方法來達成。