Microsoft VBA Функция для подсчета условно отформатированных цветных ячеек - PullRequest
0 голосов
/ 27 декабря 2018

Привет Я нашел макрос, который успешно считает условно отформатированные цветные ячейки, но когда я пытаюсь превратить его в функцию, она не работает - я читал здесь, что это может быть потому, что .DisplayFormat.Interior.Color нене работает для функций - кто-нибудь знает обходной путь?

'Variable declaration
Dim lColorCounter2 As Long
Dim rngCell2 As Range
'loop throughout each cell in the range
For Each rngCell2 In Selection
    'Checking Amber color
    If Cells(rngCell2.Row, rngCell2.Column).DisplayFormat.Interior.Color = RGB(255, 192, 0) Then
        lColorCounter2 = lColorCounter2 + 1
    End If
Next
MsgBox "Green =" & lColorCounter2    

В идеале я хотел бы, чтобы функция имела два аргумента: первый - диапазон ячеек для поиска цветов и второй - ячейка сцвет, который я хочу искать.

1 Ответ

0 голосов
/ 28 декабря 2018

Имейте в виду, что:

  1. RGB (255, 192, 0) не зеленый, но близок к оранжевому.
  2. Измените диапазон, который хотите зациклить - rng (сейчасrng равно Sheet1.Range ("A1: A20") )

Try:

Option Explicit

Public Function Color(ByVal rng As Range)

    Dim Counter As Long
    Dim Cell As Range

    For Each Cell In rng
        'Checking Amber color
        If Cells(Cell.Row, Cell.Column).DisplayFormat.Interior.Color = RGB(255, 192, 0) Then
            Counter = Counter + 1
        End If
    Next

    MsgBox "Orange=" & Counter

End Function

Sub test()

    Dim rng As Range

    Set rng = Sheet1.Range("A1:A20")

    Call Color(rng)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...