2017-08-17 19 views
0

と同じカラーインデックスを持つセルを見つけたいので、色が のセルを見つけるためにマクロを記録し、このようなコードに適用しました。 しかし、それは動作しません。特定のカラーインデックスを持つセルを見つけるRange.findメソッド

特定のカラーインデックスを持つセルを検索するにはどうすればよいですか?

For Each r In rngC 
lcolorID = r.Offset(, 1).Interior.ColorIndex 
    With wsD.UsedRange 
      With Application.FindFormat.Interior 
     .PatternColorIndex = xlAutomatic 
      .Color = lcolorID 
      End With 
     Set c = .Find(What:="", After:=ActiveCell, _ 
LookIn:=xlFormulas, LookAt:= xlPart, SearchOrder:=xlByRows, _ 
SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, _ 
SearchFormat:=True) 

     If Not c Is Nothing Then 
     Debug.Print c.Address 
     End If 
    End With 
Next r 

答えて

1
If Cell.Interior.ColorIndex = yourColorIndex Then 'using your color variable 
    'your actions here 
End If 

場所上記の場合は、すべての行を通過し、それが動作するはずforループ内の条件!そしてあなたのシートを通過するために使用しているループを使用して、プロジェクトで現在処理している特定のセルで "セル"を置き換えます。あなたのシート名が"Sheet"であれば、使用します。

rowindexcolumnindexはあなたが通過ルーピングされているインデックスです
Sheets("Sheet").Cell(rowindex, columnindex).Interior.ColorIndex 

を。

+0

Range.Findメソッドを使用できますか? –

+0

Findメソッドが 'Cell.Interior.ColorIndex'検索をサポートしていますが、試してみることができます: ' Range(Sheets( "Sheet")セル(startrow、startingcolumn)、Sheets( "Sheet")セル(endrow、endcolumn) ).Find(yourColorIndex) ' – Diveye

+0

colorindexを使ってRange.findメソッドを使用する方法が必要でした。しかし、私にとってはほとんど不可能なようです。とにかく、ありがとう –

1

Application.FindFormat.Clearの前に試してください。With Application.FindFormat.Interiorの前にしてください。

フォーマットが既に設定されているため、目的のセルを一致させることができない場合があります。

+0

私はそれを試して、それは黄色、青などの "固体"色のセルでのみ働いた.....それは他の "着色"または "陰影"の色で動作しませんでした。とりあえずありがとう! –

+0

@KevinKimそれがうまくいかなかった場合は、正しいとマークするべきではありません。 –

関連する問題