Bir Monalisa tablosu çizelim ve VBA'yı kullanarak Picasso'yu geride bırakalım. Hazırlanın, Ayarlayın…
Beklemek! Beklemek! Atlarınızı tutun. Koşullu biçimlendirme yapmak için VBA'yı kullanacağız ve bu bir tablodan daha mı kolay? şekilli kuş.
VBA Koşullu Biçimlendirmenin Genel sözdizimi
Range(range).Interior.ColorIndex= 1-56 değerinden koşul varsa
Durumunuzu koşulda kontrol edin ve ardından Range nesnesinin .iteriour.colorindex özelliğini kullanarak aralığınızı biçimlendirin. Renk indeksinde 56 renk vardır. Git onlarla Holi oyna ve hangi sayının hangi renge sahip olduğunu keşfet.
Şimdi bir örnekle anlayalım
Örnek: Hücreleri Koşullu Biçimlendirmek için VBA Kodu
İşte senaryo bu, elimizde yaş ve yaş gruplarına göre rastgele insanların bir listesi var.
Bir kişinin yaş grubunu sadece isimlerine bakarak söylemek ne kadar kolay olurdu.
Şimdi bunu yapmak için, bir yetişkinse VBA formatı Adı KIRMIZI, gençse SARI ve ÇOCUK ise YEŞİL ve hücre boşsa hiçbir şey istemiyorum.
Alt FormatUsingVBA() Aralık Olarak Karart LastRow As LongRow = Cells(Rows.Count, 3).End(xlUp).Row Set rng = Range("C2:C" & lastRow)Her hücre İçin Rng If hücresinde. Value2 = "Yetişkin" Sonra Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Sonra Range(cell.Address).Offset(0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Sonra Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2). Interior.ColorIndex = 0 End If Sonraki hücre End Sub
Bu kodu doğrudan sayfadan çalıştırmak için aynı sayfaya bir düğme çizdim ve bu makroyu ona atadım. Şimdi, "Biçimlendir" düğmesini tıkladığınızda, kodunuz çalışacak ve yaş gruplarına bağlı olarak ad hücrelerini renkli olarak güncelleyecektir. Nasıl? Hadi bulalım.
Kod Açıklaması:
Dim rng As RangeDim lastRow As LongBu iki satır değişken bildirimlerdir. Yaş grubunu tutan Aralık için rng ve boş olmayan son satır numarasını almak için lastRow.
lastRow = Cells(Rows.Count, 3).End(xlUp).RowBu satır, lastRow Değişkenindeki son satır numarasını döndürür.
Set rng = Range("C2:C" & lastRow)Bu satır, C2'den başlayarak son satıra kadar olan aralığı ayarlar. Kodunuzu dinamik hale getirir. Verilerinize yeni satırlar eklersiniz ve rng değişkeninde yeni aralıkta algılar ve depolar.
Her hücre için rng'de If cell.Value2 = "Yetişkin" Sonra Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Sonra Range(cell.Address). Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Genç" Sonra Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address). Offset(0, -2).Interior.ColorIndex = 0 Sonraki hücrede Sonlandır
Bu ana segment.
Her hücre için rng'de
İlk satır, aralığınızdaki tüm hücrelere döngüyü çalıştırır. cell.Value2 = "Yetişkin" ise
Bir sonraki satır bir durum kontrolüdür. Mevcut hücre değerinin Yetişkin olup olmadığını kontrol eder.
Evet ise sonraki satır çalışır, yoksa sonraki if deyimine atlar.Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3
Şimdi EĞER koşulu TRUE değerini döndürürse, bu satır hücre rengini KIRMIZI için ColorIndex 3'e ayarlar.
Benzer şekilde aşağıdaki IF ifadeleri çalıştırılır ve belirtilen şekilde işlem yapılır.
Yani evet, VBA kullanarak aralıkları koşullu olarak biçimlendirebilirsiniz. Range nesnesinin iç yöntemi, biçimlendirme için diğer birçok özelliği kontrol eder. Onlarla oynamalısın, zararı olmaz ama mutlaka öğreneceksin. Ve benim burada olmamdan başka bir zorlukla karşılaşırsanız. Sorularınızı yorum kısmından sorun.
Dosyayı indir
Microsoft Excel'de VBA kullanarak Koşullu BiçimlendirmePopüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu
Excel'de DÜŞEYARA İşlevi nasıl kullanılır?
Excel'de COUNTIF işlevi nasıl kullanılır?
Excel'de SUMIF İşlevi nasıl kullanılır?