VBA快速標示同一欄重複資料
當有資料想確認是否有重複,有沒有什麼快速的方法標示出重複的資料?以下帶你使用VBA快速標示出同一欄重複資料。
輸入巨集
※輸入以下指令※
Sub 標示同一欄重複() Dim i As Integer, lastrow As Integer lastrow = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To lastrow Range("A1").AutoFilter 1, Cells(i, 1) If WorksheetFunction.Subtotal(3, Range("A:A")) > 2 Then Cells(i, 2).Value = "重複" End If Next i Range("A1").AutoFilter End Sub
執行巨集
點選「開發人員」-「 巨集」或按下「Ctrl」+「F8」快捷鍵,並「執行」巨集。
執行後則快速標示同一欄重複資料(如E欄),則可將重複資料做處理。
語法說明
Dim i As Integer, lastrow As Integer
‘宣告變數「i」型態為「整數」、「lastrow」型態為「整數」。
‘Integer變數範圍為-32768到32767,範圍已勘用,若數值超過的話可改成Long變數。
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
‘計算出最大列數後,再移動到上方有資料所在的列數,則為最後一列的列數,則是將變數「lastrow」指定為最後一列。
For i = 2 To lastrow
‘使用For迴圈, i 從 2 開始直到最後一列。
Range(“A1”).AutoFilter 1, Cells(i, 1)
‘AutoFilter 1指定為「第一列」做篩選;Cells(i, 1)篩選條件為第 i 列第 1 行,如 i = 2時,則是篩選第二列第一行,也就是篩選出名稱「橘子」。
If WorksheetFunction.Subtotal(3, Range(“A:A”)) > 2 Then
‘使用工作表函數SUBTOTAL,3為代碼即為COUNT A功能,計算儲存格非空白的數量,而SUBTOTAL特點是只計算可見的非空白數量。整段則是記算出篩選後是否超過2個數量(重複),則進行以下。
Cells(i, 2).Value = “重複”
‘在 i 列 2 欄儲存格填入「重複」。