Cara Menghapus Data Ganda dalam Array Sedangkan Data Ganda Lainnya Ditampilkan
Pada kesempatan ini kami akan berbagi tip yang sebenarnya merupakan kebalikan dari postingan yang telah dibahas sebelumnya yaitu Cara Menampilkan Data Ganda dalam Array Sedangkan Data Ganda Lainnya Dihapus yang mana dengan contoh data ganda pada array yang sama yaitu Bajigur, Hui, dan Suuk yang kini akan dihapus sedangkan data ganda yang lainnya masih tetap ditampilkan dalam worksheet.
![]() |
| Gambar1 |
Gambar1 adalah contoh tabel data yang sama seperti pada postingan sebelumnya dan Gambar2 di bawah ini merupakan hasil akhir setelah macro dijalankan.
![]() |
| Gambar2 |
Untuk menyusun kode macro, silakan Anda ikuti langkah demi langkah berikut ini:
1. Siapkan worksheet yang berisi data ganda atau Anda bisa menyalin data contoh seperti pada gambar1.
2. Buka VBE dengan menekan Alt+F11.
3. Buat module melalui menu Insert > Module.
4. Tetapkan judul macro misalnya HapuskanDataGandaArray:
Sub HapuskanDataGandaArray()
5. Matikan terlebih dahulu ScreenUpdating agar macro berjalan cepat dan lancar:
Application.ScreenUpdating = False
6. Tetapkan variabel berjenis data Long dan Range:
Dim bt As Long, bs As Range
7. Tetapkan barisan sel dinamis dari variabel Long untuk baris terakhir:
bt = Cells(Rows.Count, 1).End(xlUp).Row
8. Tetapkan barisan sel:
Set bs = Range("B2:B" & bt)
9. Tetapkan variabel dalam contoh daftar jajanan dan daftar nama dimana keduanya berjenis data Variant:
Dim df As Variant, nm As Variant
10. Masukkan daftar jajanan ke dalam array:
df = Array("Bajigur", "Hui", "Suuk")
11. Gunakan loop susunan For Each...Next untuk setiap nama dalam daftar nama:
For Each nm In df
12. Ganti nama yang semula tulisan menjadi dikosongkan:
bs.Replace What:=nm, Replacement:="", LookAt:=xlWhole
13. Lanjutkan proses loop:
Next nm
14. Lakukan bypass pada Error:
On Error Resume Next
15. Hapus semua baris tersaring yang kosong:
bs.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
16. Hapus objek Error barangkali terjadi run time error:
Err.Clear
17. Hapus objek variabel barisan sel untuk memulihkan kembali memori sistem:
Set bs = Nothing
18. Hidupkan kembali ScreenUpdating:
Application.ScreenUpdating = True
19. Susunan kode secara lengkap menjadi sebagai berikut:
Application.ScreenUpdating = False
Dim bt As Long, bs As Range
bt = Cells(Rows.Count, 1).End(xlUp).Row
Set bs = Range("B2:B" & bt)
Dim df As Variant, nm As Variant
df = Array("Bajigur", "Hui", "Suuk")
For Each nm In df
bs.Replace What:=nm, Replacement:="", LookAt:=xlWhole
Next nm
On Error Resume Next
bs.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Err.Clear
Set bs = Nothing
Application.ScreenUpdating = True
End Sub
20. Buka kembali worksheet dengan menekan Alt+Q
21. Buka kotak dialog Macro dengan cara menekan Alt+F8 lalu pilih HapuskanDataGandaArray dan klik Run.
Itulah penjelasan tentang bagaimana cara menghapus data ganda yang tercatat dalam suatu array sedangkan data ganda lainnya tetap ditampilkan di worksheet.
Selamat mencoba dan semoga bermanfaat.


