Получить цвет из условных форматов - PullRequest
2 голосов
/ 15 марта 2019

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

Function ColorIndex(CellColor As Range)
ColorIndex = CellColor.DisplayFormat.Interior.ColorIndex
End Function

Но когда я использую эту функцию в своем рабочем листе, она всегда возвращает значение #.

Кто-нибудь знает решение?

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

Попробуйте это

Dim clrIndex As Integer

Function ColorIndex(CellColor As Range)
    CellColor.Parent.Evaluate "GetColor(" & CellColor.Address(False, False) & ")"
    ColorIndex = clrIndex
End Function

'~~> Get the color index of the cell and store in a temp variable
Sub GetColor(RefCell As Range)
    clrIndex = RefCell.DisplayFormat.Interior.ColorIndex
End Sub

enter image description here

Для более подробного объяснения вы можете захотеть увидеть эту удивительную тему от @ TimWilliams

0 голосов
/ 15 марта 2019

Решение таково:

Dim clrIndex As Integer

Function ColorIndex(CellColor As Range)
CellColor.Parent.Evaluate "GetColor(" & CellColor.Address(False, False) & ")"
ColorIndex = clrIndex
End Function

'~~> Get the color index of the cell and store in a temp variable
Sub GetColor(RefCell As Range)
clrIndex = RefCell.DisplayFormat.Interior.ColorIndex
End Sub

И для обновления кода я использую

Application.CalculateFullRebuild

Спасибо @Siddharth Rout

...