2016-03-31 21 views
0

İş için bir Master Schedule oluşturuyorum ve bilgiyi görüntülemeye çalışıyorum, bu yüzden kullanıcı için çok sezgisel.VBA - Koşullu Biçimlendirme Çoklu Hücre ve Döngü Aralıkları

Bu yüzden Hücre K4'te bir tarih girildiğinde Hücreleri J4: L4 vurgulayabiliriz. Ardından, 4 ile 2500 arasındaki satırlar ve Sütunlar M: 0, P: R, S: U, vs için döngü yapmak istiyoruz. Aşağıdaki Makale yazdım ama sadece ilk Satır'ı vurgulamak. Birisi bana doğru yönde işaret edebilir mi? Eğer döngü ile bisiklet ederken

Sub Highlight() 
    ' 
    ' Highlight Macro 
    ' 
    ' Keyboard Shortcut: Ctrl+Shift+R 
    ' 
    Dim kRange As Range, k As Integer, aaaFormat As FormatCondition 
     If ActiveSheet.Name <> Sheet1.Name Then Exit Sub 
    For k = 4 To 2500 
     Set kRange = Range("=$J4:$L4") 
     If kRange.FormatConditions.Count <> 0 Then 
      kRange.FormatConditions.Delete 
     Else 
      Set aaaFormat = kRange.FormatConditions.Add(xlExpression, xlFormula, "=$K4<>0") 
      aaaFormat.Interior.Color = 15773696 
     End If 
    Next k 
    End Sub 
+2

Tüm hücreler için CF kuralını bir kerede oluşturmamanızın bir nedeni var mı? – Jeeped

cevap

2

, CF kural geçerli olacaktır aralığı yanı sıra sonucunu belirleyen formülü ayarlamanız gerekir. Zaten satır göreli, sütun mutlak yaptık beri

'this, 
Set kRange = Range("$J4:$L4") 
'becomes, 
Set kRange = Range("$J"& k & ":$L"& k) 
'and this, 
Set aaaFormat = kRange.FormatConditions.Add(xlExpression, xlFormula, "=$K4<>0") 
'becomes, 
Set aaaFormat = kRange.FormatConditions.Add(xlExpression, xlFormula, "=$K" & k & "<>0") 

Ancak, sadece tüm aralığına CF yazabilir.

Sub Highlight() 
    ' Highlight Macro 
    ' Keyboard Shortcut: Ctrl+Shift+R 

    With Sheet1.Range("J4:L2500") 
     .FormatConditions.Delete 
     With .FormatConditions.Add(Type:=xlExpression, Formula1:="=$K4<>0") 
      .Interior.Color = 15773696 
     End With 
    End With 
End Sub 
+0

Yardımlarınız için teşekkür ederiz. Bir kerede tüm hücreler için bir CF oluşturmuyorum çünkü her satırdaki bir hücrenin bilgi girdisine sahip olması durumunda satır tarafından kişiselleştirilmeye ihtiyacım var. Ayrıca dosya boyutunu olabildiğince düşük tutmaya çalışıyorum. Özür dilerim ama hala bu konuda oldukça yeniyim, yukarıdaki Makroyu açıklığa kavuşturabilir veya açıklayabilir misiniz? Sadece J4 Sütunu için mevcut Koşullu Formatlamayı kaldırmayı başardım. –

+0

Hangisi? Kodunuzda veya altında sağladığım değişiklikler mi? btw, çok sayıda satır için tek bir CF kuralı, her biri bir satırı yöneten birçok CF kuralından çok daha az hesaplama gerektirir. – Jeeped

+0

Tek CF kuralı daha az yoğunsa, bunu nasıl yapacağınızı açıklayabilir misiniz? - Yardımın için minnettarım. –

İlgili konular