Bagaimana cara menyorot nilai duplikat dengan vba?

Saat bekerja dengan data besar, nilai duplikat selalu menjadi masalah. Seringkali saya menggunakan opsi hapus duplikat untuk menghapus semua nilai ini. Dan saya yakin Anda juga melakukan hal yang sama.

Namun menghapus nilai duplikat ini atau sekadar menghitungnya tidak pernah menyelesaikan masalah. Yang penting adalah memeriksa semua nilai duplikat sebelum menghapusnya.

Ya itu benar. Setelah Anda menyorot semua nilai ini, Anda dapat memeriksa dan kemudian menghapusnya. Hari ini di artikel ini, saya ingin berbagi dengan Anda 4 kode VBA berbeda untuk menyorot nilai duplikat.

Dan masalahnya adalah kode-kode ini dapat menyorot sel dengan cara yang berbeda. Anda cukup menyalin dan menempelkannya ke editor VBA Anda dan menggunakannya.

1. Di setiap baris

Kode VBA ini memeriksa semua sel dalam satu baris dan menyorot semua sel yang diduplikasi dalam satu baris. Sederhananya, jika sebuah baris memiliki nilai “522” dua kali, maka akan dianggap duplikat. Namun jika 522 lainnya berada di baris lain, maka dianggap unik.

sorot nilai duplikat setiap baris menggunakan kode VBA
 Sub DuplicateValuesFromRow() 'Declare All Variables. Dim myCell As Range Dim myRow As Integer Dim myRange As Range Dim myCol As Integer Dim i As Integer 'Count Number of Rows and Columns myRow = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Count myCol = Range(Cells(1, 1), Cells(1, 1).End(xlToRight)).Count 'Loop Each Row To Check Duplicate Values and Highlight cells. For i = 2 To myRow Set myRange = Range(Cells(i, 2), Cells(i, myCol)) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next Next End Sub

Jika Anda melihat makro ini, Anda akan melihat bahwa kami menggunakan loop untuk memeriksa setiap baris untuk nilai duplikat dan menyorotnya dengan warna.

Poin penting

  1. Data Anda tidak boleh berisi baris atau kolom kosong, jika tidak maka sel tersebut akan diabaikan.
  2. Sel awal untuk data Anda haruslah sel “A1”. Dan jika Anda ingin menyesuaikan titik awalnya, Anda perlu menyesuaikan kodenya.
  3. Baris pertama dan kolom pertama lembar data Anda harus berupa header.

2. Di setiap kolom

Kode VBA ini memeriksa semua sel dalam kolom dan menyorot semua sel yang diduplikasi di setiap kolom. Sederhananya, jika sebuah kolom memiliki nilai “231” dua kali, maka akan dianggap duplikat. Namun jika ada “231” lain di kolom lain, maka akan dianggap unik.

sorot nilai duplikat setiap kolom menggunakan kode VBA
 Sub DuplicateValuesFromColumns() 'Declare All Variables Dim myCell As Range Dim myRow As Integer Dim myRange As Range Dim myCol As Integer Dim i As Integer 'Count number of rows & column myRow = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Count myCol = Range(Cells(1, 1), Cells(1, 1).End(xlToRight)).Count 'Loop each column to check duplicate values & highlight them. For i = 2 To myRow Set myRange = Range(Cells(2, i), Cells(myRow, i)) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next Next End Sub

3. Dalam seleksi

Misalkan Anda hanya ingin menyorot sel dengan nilai duplikat dari pilihan, kode ini dapat membantu Anda. Untuk menggunakan kode ini, cukup pilih rentang sel dan jalankan kode ini. Ia memeriksa setiap sel dengan pilihan dan menyorotnya dengan warna merah jika sel memiliki nilai duplikat.

sorot nilai duplikat dari pilihan menggunakan kode VBA
 Sub DuplicateValuesFromSelection() Dim myRange As Range Dim i As Integer Dim j As Integer Dim myCell As Range Set myRange = Selection For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next End Sub

4. Data bilangan bulat

Jika Anda memiliki kumpulan data yang besar, Anda dapat menggunakan kode makro ini untuk memverifikasi kelengkapan data dan menyorot nilai duplikat. Kode ini melewati setiap sel satu per satu dan menerapkan warna merah ke semua sel yang merupakan duplikat.

 Sub DuplicateValuesFromTable() Dim myRange As Range Dim i As Integer Dim j As Integer Dim myCell As Range Set myRange = Range(“Table1”) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next End Sub

Catatan Penting: Pada kode di atas kami menggunakan nama tabel “Tabel1”, Anda dapat mengubah nama ini dari kode tersebut. Sekarang, jika Anda memiliki suatu rentang, Anda cukup menggunakan nama rentang tersebut.

[Tips Bonus] Hitung nilai duplikat

Kode ini membantu Anda menghitung jumlah nilai duplikat dari pilihan. Saat Anda menjalankan kode ini, ia mengembalikan kotak pesan yang menunjukkan nomor tersebut.

 Sub CountDuplicates() Dim i As Integer Dim j As Integer Dim myCell As Range Dim myRange As Integer myRange = Range("Table1").Count j = 0 For Each myCell In Range("Table1") If WorksheetFunction.CountIf(Range("Table1"), myCell.Value) > 1 Then j = j + 1 End If Next MsgBox j End Sub

Sekali lagi dalam kode di atas kami telah menggunakan nama tabel dan Anda mengubah atau menggantinya dengan rentang.

Contoh berkas

Unduh file contoh ini di sini untuk mempelajari lebih lanjut.

Kesimpulan

Dalam situasi yang berbeda, kita perlu memeriksa nilai duplikat dengan cara yang berbeda. Dan, semua kode di atas dapat membantu Anda dalam hal ini. Jika mau, Anda dapat mengubah warna highlight dari kode menggunakan nomor indeks warna.

Sekarang bantu aku dengan satu hal.

Di mana kita dapat memperbaiki kode-kode ini?

Silakan bagikan pemikiran Anda dengan saya di bagian komentar, saya ingin mendengar pendapat Anda. Dan jangan lupa untuk membagikan tip ini kepada teman-teman Anda.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *