For Each c1 In ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible)
If cl.Interior.ColorIndex = 16 Then
MsgBox "Error in " & c1.Address
Exit Sub ' To step out after first error
End If
Next
End Sub
我有这个代码在我的工作表中搜索颜色索引为16的非隐藏单元格。
但是,我希望添加第三个标准:SpecialCells(xlCellTypeBlanks)
这样只有在满足3个条件时才会显示该消息。
您的意见表示赞赏,
感谢
答案 0 :(得分:1)
试试这个:If c1.Interior.ColorIndex = 16 And c1.Value2 = vbNullString Then
答案 1 :(得分:0)
首先,使用Option Explicit
!这样,您就可以像在代码中一样阻止混淆cl
和c1
!此外,最佳做法是使用缩进来使代码更易于阅读。
您可以使用Application.Intersect
:
Option Explicit Private Sub FindErrors() Dim c As Range For Each c In Application.Intersect( _ ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible), _ ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)) If c.Interior.ColorIndex = 16 Then c.Activate MsgBox "Error in " & c.Address Exit Sub End If Next c End Sub