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

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

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对象。 有关更多的上下文,请参阅: 对于范围内的每个fc .formatconditions失败。 为什么?

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

什么是一个很好的方式,我可以跳过formatconditions集合中所有这些types为formatcondition的对象?

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

你有没有尝试Typename函数,例如:

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