Vba: як виділити перші n значень у стовпці


Ви можете використовувати такий синтаксис у VBA, щоб виділити перші N значень стовпця в Excel:

 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

Цей конкретний макрос виділить 3 найвищі значення в діапазоні A2:A11 .

Щоб виділити іншу кількість верхніх значень, просто відредагуйте рядок For i = 1 To 3 , щоб мати іншу верхню межу.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: виділіть перші N значень у стовпці за допомогою VBA

Припустимо, у стовпці A нашої електронної таблиці Excel є такі значення:

Ми можемо створити наступний макрос, щоб виділити перші 3 найбільші значення в діапазоні A2:A11 :

 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

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

VBA виділяє перші N значень у стовпці

Зверніть увагу, що клітинки, які містять 3 найвищі значення в стовпці A, тепер виділені.

Зверніть увагу, що ви також можете змінити колір для виділення, а також кількість основних значень для виділення.

Наприклад, ми можемо використовувати наступний макрос, щоб виділити перші 5 значень у стовпці A зеленим кольором:

 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

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зверніть увагу, що клітинки, які містять 5 найвищих значень у стовпці A, тепер виділені зеленим кольором.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: як застосувати умовне форматування до клітинок
VBA: як застосувати умовне форматування до повторюваних значень
VBA: як знайти значення в стовпці

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *