Для каждого fc в range.formatconditions терпит неудачу. Зачем?

Следующий код работает для большинства листов моей книги:

Function IsHighlighted() As Boolean
 Dim wks As Worksheet
 For Each wks In ThisWorkbook.Worksheets
 Dim rUsedRange As Range
 Set rUsedRange = wks.UsedRange
 With rUsedRange
 Dim bHighlighted As Boolean
 Dim fc As FormatCondition
 For Each fc In .FormatConditions
 If fc.Interior.Color = RGB(255, 0, 0) And fc.Font.Color = RGB(255, 255, 0) Then
 bHighlighted = True
 Exit For
 End If
 Next fc
 If bHighlighted = True Then
 Exit For
 End If
 End With
 Debug.Print (wks.Name & "," & rUsedRange.FormatConditions.count)
 Next wks
 IsHighlighted = bHighlighted
End Function

Но он не работает в строке For Each fc In .FormatConditions с несоответствием типа сообщения об ошибке на листе, который имеет rUsedRange.FormatConditions.Count = 34, из которого многие являются наборами значков.

Почему код не работает на этом листе? Как я могу это исправить?

1 ответ

В коллекцию FormatConditions входят объекты FormatCondition, DataBar, AboveAverage, ColorScale, UniqueValues, Top10 и IconSetCondition, а не только объекты FormatCondition, поэтому вам нужно объявить ваша переменная fc как Object.

licensed under cc by-sa 3.0 with attribution.