2016-04-06 10 views
0

私の以前の質問に続いて: Background Color based on difference with cell 。この関数をある範囲の行に適用したいと思います。範囲で機能を使用する

私は適用したい機能は次のとおりです。

If Sheets("X").Range("E18") > Sheets("blocked(R)").Range("D18") Then 
    Sheets("X").Range("E18").Interior.ColorIndex = 10 

私はこの機能を適用する必要がある範囲が固定されているために:D18:E1200。 しかし、この範囲にアクティブなフィルタがあります。

もちろん、Autofillコードは動作していません。そして、1200行ごとにコード行を書くことは狂っています。

私は検索と読書と私はそれのようなものでなければならないと思いますされています:

Dim rng As Range 
Dim row As Range 
Dim cell As Range 

Set rng = Range("A1:C2") 

For Each row In rng.Rows 
    For Each cell in row.Cells 
    'Do Something 
    Next cell 
Next row 

しかし、私はそれが仕事を得るように見えるしていない、私は正しい方向にいくつかのポインティングを期待していましたコミュニティ。

+2

[条件付き書式](https://support.office.com/en-au/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f )をネイティブのワークシート式で置き換える方が良いソリューションです。 – Jeeped

+0

行と列として@Jeepedが挿入されます。条件はオプションではありません。私は、この追加のたびにこの特定の範囲で書式設定コードを実行できる必要があります。 –

答えて

0
Sub test() 

    Dim rngApply As Range 
    Set rngApply = Sheets("X").Range("D18:E1200") 
    Dim varIndex As Variant 

    For Each varIndex In rngApply 
     If varIndex.Value > Sheets("blocked(R)").Range("D18") Then 
      varIndex.Interior.ColorIndex = 10 
     End If 
    Next 

End Sub 
関連する問題