Vba: sütundaki ilk n değeri nasıl vurgulanır?


Excel’de bir sütunun ilk N değerini vurgulamak için VBA’da aşağıdaki sözdizimini kullanabilirsiniz:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Bu özel makro, A2:A11 aralığındaki en yüksek 3 değeri vurgulayacaktır.

Farklı sayıda üst değeri vurgulamak için For i = 1 To 3 satırını farklı bir üst sınıra sahip olacak şekilde düzenlemeniz yeterlidir.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: VBA Kullanarak Sütundaki İlk N Değeri Vurgulayın

Excel e-tablomuzun A sütununda aşağıdaki değerlerin bulunduğunu varsayalım:

A2:A11 aralığındaki ilk 3 en büyük değeri vurgulamak için aşağıdaki makroyu oluşturabiliriz:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

VBA, sütundaki ilk N değeri vurgular

A sütununda en yüksek 3 değeri içeren hücrelerin artık vurgulandığına dikkat edin.

Vurgulamak için kullanılacak rengin yanı sıra vurgulanacak birincil değerlerin sayısını da değiştirebileceğinizi unutmayın.

Örneğin A sütunundaki ilk 5 değeri yeşil renkte vurgulamak için aşağıdaki makroyu kullanabiliriz:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 5 values in range
    For Each rng In EntireRange
        
        For i = 1 To 5
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbGreen
        End If
        Next
    
    Next rng

End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

A sütununda en yüksek 5 değeri içeren hücrelerin artık yeşil renkle vurgulandığına dikkat edin.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Hücrelere koşullu biçimlendirme nasıl uygulanır?
VBA: Yinelenen değerlere koşullu biçimlendirme nasıl uygulanır?
VBA: Bir sütundaki değer nasıl bulunur?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir