2016-04-06 18 views
0

Önceki soruma sonra: Background Color based on difference with cell . Şimdi bu işlevi bir dizi sıraya uygulamak istiyorum.Kullanım İşlev aralığı

Ben uygulamak istediğiniz fonksiyonudur:

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

Ben bu işlevi uygulamak gerekir aralığı sabittir için: D18:E1200. Ancak, bu aralıkta aktif bir filtre olacak.

tabii Autofill kod çalışma ve çılgın olacağını 1200 satırların her biri için bir kod satırı yazmıyor.

ben bulup okumayı ve bunu gibi bir şey olmalı bence edilmiştir:

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 

Ama bunun doğru yönde içine, bazı işaret umuyordum çalışmak için görünmüyor topluluk.

+2

[koşullu biçimlendirme] (https://support.office.com/en-au/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f) doğal bir çalışma sayfası formülü ile daha iyi bir çözümdür. – Jeeped

+0

@ Satır ve sütun olarak eklenir. Koşullu seçenek yoktur. Her ekleme sonrasında bu belirli aralıkta biçimlendirme kodunu çalıştırabilmem gerekir. –

cevap

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