Vba ile yinelenen değerler nasıl vurgulanır?

Büyük verilerle çalışırken yinelenen değerler her zaman sorun teşkil eder. Çoğu zaman tüm bu değerleri kaldırmak için kopyaları kaldır seçeneğini kullanıyorum. Ve eminim siz de aynı şeyi yapıyorsunuzdur.

Ancak bu yinelenen değerleri kaldırmak veya yalnızca saymak sorunu asla çözmez. Önemli olan tüm kopya değerleri kaldırmadan önce incelemektir.

Evet bu doğru. Tüm bu değerleri vurguladıktan sonra kontrol edebilir ve ardından silebilirsiniz. Bugün bu yazımda yinelenen değerleri vurgulamak için 4 farklı VBA kodunu sizlerle paylaşmak istiyorum.

Mesele şu ki, bu kodlar hücreleri farklı şekillerde vurgulayabiliyor. Bunları kopyalayıp VBA düzenleyicinize yapıştırabilir ve kullanabilirsiniz.

1. Her satırda

Bu VBA kodu, satırdaki tüm hücreleri kontrol eder ve satırda çoğaltılan tüm hücreleri vurgular. Basit bir ifadeyle, bir satırın değeri iki kez “522” ise kopya olarak kabul edilir. Ancak diğer 522 başka bir sıradaysa benzersiz sayılacaktır.

VBA kodunu kullanarak her satırın yinelenen değerlerini vurgulayın
 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

Bu makroya bakarsanız, her satırı yinelenen değerler açısından kontrol etmek ve bunları bir renkle vurgulamak için bir döngü kullandığımızı göreceksiniz.

Önemli noktalar

  1. Verileriniz boş bir satır veya sütun içermemelidir, aksi takdirde bu hücre dikkate alınmaz.
  2. Verilerinizin başlangıç hücresi “A1” hücresi olmalıdır. Başlangıç noktasını ayarlamak istiyorsanız kodu da ayarlamanız gerekir.
  3. Veri sayfanızın ilk satırı ve ilk sütunu başlık olmalıdır.

2. Her sütunda

Bu VBA kodu, bir sütundaki tüm hücreleri kontrol eder ve her sütunda kopyalanan tüm hücreleri vurgular. Basit bir ifadeyle, bir sütun iki kez “231” değerine sahipse kopya olarak kabul edilecektir. Ancak başka bir sütunda başka bir “231” varsa benzersiz kabul edilecektir.

VBA kodunu kullanarak her sütunun yinelenen değerlerini vurgulayın
 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. Seçimde

Diyelim ki seçimdeki yinelenen değerlere sahip hücreleri vurgulamak istiyorsunuz, bu kod size yardımcı olabilir. Bu kodu kullanmak için bir hücre aralığını seçip bu kodu çalıştırmanız yeterlidir. Seçimle birlikte her hücreyi kontrol eder ve bir hücrede yinelenen bir değer varsa kırmızı renkle vurgulanır.

VBA kodunu kullanarak seçimdeki yinelenen değerleri vurgulayın
 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. Tamsayı verileri

Büyük bir veri kümeniz varsa, verilerin eksiksizliğini doğrulamak ve yinelenen değerleri vurgulamak için bu makro kodunu kullanabilirsiniz. Bu kod her hücreden tek tek geçerek kopya olan tüm hücrelere kırmızı rengi uygular.

 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

Önemli Not: Yukarıdaki kodda Tablo1 adını kullandık, bu adı koddan değiştirebilirsiniz. Artık bir aralığınız varsa yalnızca aralık adını kullanabilirsiniz.

[Bonus İpucu] Yinelenen değerleri sayın

Bu kod, seçimdeki yinelenen değerlerin sayısını saymanıza yardımcı olur. Bu kodu çalıştırdığınızda, numarayı gösteren bir mesaj kutusu döndürür.

 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

Yukarıdaki kodda yine bir tablo adı kullandık ve siz bunu bir aralıkla değiştirir veya değiştirirsiniz.

Örnek dosya

Daha fazla bilgi edinmek için bu örnek dosyayı buradan indirin .

Çözüm

Farklı durumlarda, yinelenen değerleri farklı şekillerde kontrol etmemiz gerekir. Ve yukarıdaki kodların tümü bu konuda size yardımcı olabilir. İsterseniz renk indeks numarasını kullanarak kodlardan vurgu rengini değiştirebilirsiniz.

Şimdi bana bir konuda yardım et.

Bu kodları nerede geliştirebiliriz?

Lütfen yorum kısmında düşüncelerinizi benimle paylaşın, sizden haber almayı çok isterim. Ve bu ipucunu arkadaşlarınızla paylaşmayı unutmayın.

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir