В этой статье мы создадим настраиваемую функцию для подсчета количества ячеек в диапазоне с определенными цветами.

В этом примере образец данных состоит из диапазона значений от 100 до 1000. Значения в ячейках выделены разными цветами. Мы хотим найти количество каждого цвета.

ArrowMain

Чтобы рассчитать количество определенного цвета, мы создали специальную функцию «CountByColor». Эта функция принимает на вход два параметра диапазона. Первый параметр диапазона определяет внутренний цвет ячейки, а второй параметр диапазона определяет диапазон выборки.

ArrowOutput

Объяснение кода

Application.Volatile используется, поскольку он будет пересчитываться каждый раз, когда значение ячейки изменяется в книге.

DefinedColorRange.Interior.ColorIndex Приведенный выше код используется для получения внутреннего цвета определенного диапазона.

Пожалуйста, введите код ниже

Function CountByColor(DefinedColorRange As Range, CountRange As Range)

Application.Volatile

'Declaring variables

Dim ICol As Integer

Dim GCell As Range

'Getting the interior color of the cell

ICol = DefinedColorRange.Interior.ColorIndex

'Looping through the defined range

For Each GCell In CountRange



If ICol = GCell.Interior.ColorIndex Then

'Getting the count of matching colored cell

CountByColor = CountByColor + 1

End If

Next GCell

End Function

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]