Выбор диапазона видимых ячеек только с VBA - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующая функция «CountCcolor ()», которую я хотел бы использовать на трекере состояния.Мое намерение состоит в том, чтобы использовать эту функцию, чтобы найти в видимых ячейках диапазон видимых ячеек, сколько из них выделено определенным цветом, скажем зеленым.

Function CountCcolor(range_data As Range, criteria As Range) As Long

    Dim datax As Range
    Dim xcolor As Long

    ' The next one-liner does not work. Without it, it selects visible and hidden cells. I only want it to select visible cells:
    range_data = Selection.SpecialCells(xlCellTypeVisible).Select

    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor Then
             CountCcolor = CountCcolor + 1
        End If
    Next datax
End Function

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 04 октября 2018

Не используйте Interior.ColorIndex

Вместо этого просто используйте Interior.Color.Я был одурачен этим однажды также.Короче говоря, ColorIndex представляет вкус цветов, не уникальный цвет.Подробнее см. здесь

Function CountCcolor(range_data As Range, criteria as Range) As Long

Dim myRange As Range, myCell As Range, TempCount As Long
Set myRange = range_data.SpecialCells(xlCellTypeVisible)

For Each myCell In myRange
    If myCell.Interior.Color = criteria.Interior.Color Then
        TempCount = TempCount + 1
    End If
Next myCell

CountCcolor = TempCount

End Function
...