Aşağıda, rastgele seçilen aralıkları karşılaştıran ve benzersiz olan hücreleri vurgulayan Excel VBA'daki bir programa bakacağız.
Not: Bu örnekteki tek benzersiz değer 4'tür, çünkü diğer tüm değerler en az bir alanda daha ortaya çıkar. Range("B2:B8,D2:E5,D7:E8") seçmek için, CTRL tuşunu basılı tutun ve her bir alanı seçin.
Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:
1. İlk olarak, dört Range nesnesi ve Integer türünde iki değişken tanımlıyoruz
Dim aralik1 As Range, aralik2 As Range, hucre1 As Range, hucre2 As Range, i As Integer, j As Integer
2. aralik1 Range nesnesini seçilen aralık ile başlatıyoruz
Set aralik1 = Selection
3. Tüm hücrelerin arka plan rengini 'Doldurma Yok' olarak değiştiren satırı ekleyin. Ayrıca tüm hücrelerin kenarlıklarını kaldıran satırı da ekleyin.
Cells.Interior.ColorIndex = 0 Cells.Borders.LineStyle = xlNone
4. Kullanıcı yalnızca bir alan seçtiğinde ona hata mesajı gönderin.
If Selection.Areas.Count <= 1 Then MsgBox "Lütfen birden fazla alan seçin" Else End If
Aşağıdaki kod satırları Else ve End If arasına eklenmelidir.
5. Seçilen alanların hücrelerini renklendirin.
aralik1.Interior.ColorIndex = 3
6. Her alanı sınırlayın.
For Each aralik2 In aralik1.Areas aralik2.BorderAround ColorIndex:=1, Weight:=xlThin Next aralik2
7. Bu programın geri kalanı aşağıdaki gibidir.
For i = 1 To aralik1.Areas.Count For j = i + 1 To aralik1.Areas.Count For Each hucre1 In aralik1.Areas(i) For Each hucre2 In aralik1.Areas(j) If hucre1.Value = hucre2.Value Then hucre1.Interior.ColorIndex = 0 hucre2.Interior.ColorIndex = 0 End If Next hucre2 Next hucre1 Next j Next i
Sayfadaki komut düğmesini tıklattığınızda sonuç: