iT邦幫忙

DAY 9
3

Excel VBA 的眉眉角角系列 第 9

Excel VBA 的眉眉角角Day9:刪除重複資料

當有一串資料需要檢測是否有重複值時,可使用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的原因是因為已經經過排序,即使有空值,也是排到最後面去,所以可用此方法來達成。


上一篇
Excel VBA 的眉眉角角Day8: 關於錯誤控制與偵錯方式
下一篇
Excel VBA 的眉眉角角Day10: 如何加速程式執行?
系列文
Excel VBA 的眉眉角角30

尚未有邦友留言

立即登入留言