-1
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の隠されていないセルをシートで検索するこのコードがあります..

ただし、3 番目の基準を追加したいと思います。 SpecialCells(xlCellTypeBlanks)

3 つの条件が満たされた場合にのみメッセージが表示されるようにします。

あなたの考えは高く評価され、

ありがとう

4

2 に答える 2

1

これを試して:If c1.Interior.ColorIndex = 16 And c1.Value2 = vbNullString Then

于 2013-02-06T17:46:30.797 に答える
0

まず、Option Explicit!を使用します。このようにして、コードで行ったように、混同clを防ぎます。c1また、コードを読みやすくするためにインデントを使用することをお勧めします。

あなたは使用することによってあなたが望むものを達成することができますApplication.Intersect

オプション明示

プライベートサブFindErrors()
    Dim c As Range
    For Each c In Application.Intersect(_
        ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible)、_
        ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks))

        c.Interior.ColorIndex=16の場合
            c。アクティブ化
            MsgBox "Error in"&c.Address
            サブを終了
        終了する場合
    次のc
サブ終了
于 2013-02-06T17:46:20.133 に答える