Skip to content Skip to sidebar Skip to footer

Cara Menghapus Data Ganda Secara Langsung pada Suatu Kolom Tunggal di Excel

Contoh kode macro di bawah ini mempertunjukkan cara menggunakan AdvancedFilter untuk memperlihatkan awal setiap kepingan data yang terdapat dalam kolom A.

Adapun baris yang diperlihatkan ditandai dengan suatu nilai (seperti dalam contoh ini menggunakan angka 1, namun bisa berupa angka berapa saja) dalam sebuah kolom bantu.

Semua baris dengan sel yang kosong dalam kolom bantu nantinya akan dihapus.

Jika PivotTable merupakan alat yang begitu luar biasa dalam Excel, maka AdvancedFilter bisa dibilang sebagai sebuah alat lain di urutan setelahnya karena salah satu kemampuan alat ini adalah dapat menyaring kepingan data yang unik dalam suatu daftar yang banyaknya mungkin lebih dari sepuluh ribu baris hanya dalam hitungan detik saja bahkan secepat kilat.

Selain itu, filter juga lebih cepat dibandingkan dengan melakukan loop pada sel satu per satu.

Mohon diingat baik-baik bahwa tidak akan ada opsi Undo setelah macro ini dijalankan yang mengakibatkan data Anda akan benar-benar terhapus.

Ikuti langkah demi langkah berikut untuk menyusun kode macro:

1. Siapkan sebuah contoh worksheet dengan suatu daftar di kolom A yang di dalamnya memuat data ganda atau duplikat untuk mempraktikkan tutorial ini.

2. Buka VBE dengan menekan Alt+F11.

3. Buat module melalui menu Insert > Module.

4. Tetapkan judul macro Anda misalnya HapusDataGandaKolomA dengan mengetik:

Sub HapusDataGandaKolomA()

5. Tepat di bawah garis kode di atas, tentukan variabel Long untuk kolom terakhir yang digunakan:

Dim K As Long
With Application
.ScreenUpdating = False

6. Tentukan bilangan kolom terakhir dari tabel, lalu tambahkan dengan angka 1 untuk membuat kolom bantu setelah kolom terakhir dalam tabel data:

K = _
Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1

7. Alat AdvancedFilter memperlihatkan masukan data yang unik dan menambahkan angka 1 pada kolom bantu di baris awal data yang sama pertama kali muncul dalam daftar:

With Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
.SpecialCells(xlCellTypeVisible).Offset(0, K - 1).Value = 1

8. Gunakan statement bypass Error untuk menghindari macro terhenti jika data ganda tidak ditemukan dalam daftar:

On Error Resume Next

9. Perlihatkan seluruh baris dengan menghentikan AdvancedFilter:

ActiveSheet.ShowAllData

10. Hapus baris-baris yang kosong selnya pada kolom bantu, sebagai penanda bahwa nilai dalam kolom A mengalami data ganda.

Columns(K).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Err.Clear
End With

11. Hapus kolom bantu:

Columns(K).Clear
.ScreenUpdating = True
End With

12. Kode macro lengkapnya sebagai berikut:

Sub HapusDataGandaKolomA()
Dim K As Long
With Application
.ScreenUpdating = False
K = _
Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
With Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
.SpecialCells(xlCellTypeVisible).Offset(0, K - 1).Value = 1
On Error Resume Next
ActiveSheet.ShowAllData
Columns(K).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Err.Clear
End With
Columns(K).Clear
.ScreenUpdating = True
End With
End Sub

13. Kembali ke worksheet dengan menekan Alt+Q

14. Buka kotak dialog Macro dengan cara menekan Alt+F8 lalu pilih HapusDataGandaKolomA dan klik Run.

Itulah penjelasan tentang bagaimana cara menghapus data ganda secara langsung pada suatu kolom tunggal di Excel dengan Macro VBA.

Selamat mencoba dan semoga bermanfaat.