以下代码适用于我的工作簿中的大多数工作表:

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 其中许多是图标集。

为什么此表上的代码失败?我该如何解决?

最佳答案

FormatConditions 集合包括 FormatConditionDataBarAboveAverageColorScaleUniqueValuesTop10IconSetCondition 对象,而不仅仅是 FormatCondition 对象,因此您需要将 fc 变量声明为 Object

关于vba - 对于 range.formatconditions 中的每个 fc 失败。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28456730/

10-13 08:08