忽略格式条件集合中不是格式条件的项目?

时间:2015-02-11 17:35:21

标签: excel vba excel-vba

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

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 Object
            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

但是我的一些工作表包含图标集。

显然: FormatConditions集合包括FormatConditionDataBarAboveAverageColorScaleUniqueValuesTop10IconSetCondition个对象,而不仅仅是FormatCondition个对象。 有关更多上下文,请参阅:For each fc in range.formatconditions fails. Why?

其中一些没有.Interior.Color所以if语句会抛出错误。

有什么好方法我可以跳过formatconditions集合中不属于formatcondition类型的所有这些对象?

我尝试使用VarType(fc)来确定obejct类型,但它只返回一个9,表示fc是某种对象。

1 个答案:

答案 0 :(得分:1)

您是否尝试过Typename函数, 例如:

Dim str as string.
Msgbox Typename(str)  ' ->>> "String"