2016-09-16 4 views
0

Ich habe es geschafft, Code arbeiten zu lassen, der eine ganze Zeile basierend auf dem Wert einer Zelle ausgraut. JetztVBA: Ändern der Schriftfarbe für jede n-te Zelle basierend auf dem Zellenwert

ich brauche: Wenn Zellenwert in AV < 100, die Farbe Schriftart ändern in jeder 6. Spalte, Spalte beginnend 6. dann, wenn der Wert in AW < 100, die Farbe Schriftart ändern in jeder 6. Spalte, Spalte Start 7. Dann wenn Wert in AX < 100, ändern Sie die Schriftfarbe in jeder 6. Spalte, beginnend mit Spalte 8. Ich muss dies mit jedem Wert im Bereich AV: AZ tun.

Ich würde wirklich etwas Hilfe zu schätzen wissen.

Dies ist der Code, den ich es geschafft, eine ganze Reihe graut zum Laufen zu bringen:

Range("AU1").Select 
    For i = 12 To LRow            'Do for Row 12 to end 
     If Cells(i, 47).value < 100 Then 
      Cells(i, 47).EntireRow.Font.Color = RGB(150, 150, 150) 
     End If 
    Next i 
+0

alternativ kann bedingte Formatierung betrachten, es wird effizienter arbeiten. – Rosetta

+0

Ich fürchte, es wird nicht. Dies ist ein sehr kleines Untersegment einer großen Datei, die automatisiert werden muss. Ich muss in der Lage sein, VBA zu verwenden, um dies zu erreichen. Die Berichtsvorlage wird auf 20 identische Einzelberichte verteilt. Bedingte Formatierung über 20 Berichte wird leider einfach nicht effizient sein. Danke für den Vorschlag. – Hanret

Antwort

0

Sie können es tun, indem Sie den „EntireRow“ und die Verwendung von Offset statt Sie zu entfernen

Range("AU1").Select 
For i = 12 To LRow  'Do for Row 12 to end 
    If Cells(i, 47).value < 100 Then 
     For j = 1 to 10 ' this must be tuned to your need. 
      Cells(i, 47).Offset(0, 6*j +1).Font.Color = RGB(150, 150, 150) 
     Next j 
    End If 
Next i 
+0

Vielen Dank. Das funktioniert aber überhaupt nicht für mich. Und außerdem, wenn ich Ihren Code mit meinem bestehenden Arbeitscode einfüge, funktioniert das plötzlich auch nicht. Der Code, den ich oben gepostet habe, funktionierte perfekt. Was ich brauche, ist zusätzlich zu dem Arbeitscode: Wenn Col AV <100, dann von Col 6 und für jede 6. Spalte danach bis Col AV, ändere die Schriftfarbe in Col 6 und jeder 6. Spalte. – Hanret

+0

Oh yeah Entschuldigung, ich habe bis zum Ende nicht gelesen. Dann müssen Sie eine innere Schleife haben. Ich kann es nicht von hier aus tunen, da ich kein Excel habe, aber wir werden morgen sehen. Ich werde mit der Grundidee bearbeiten - Sie können versuchen, es für Ihre Bedürfnisse zu tunen. –

+0

Vielen Dank. Ich schließe deinen Vorschlag an und werde zurückgehen. Sehr geschätzt. – Hanret

Verwandte Themen