2016-06-08 17 views
0

Ich möchte z. B. die 1s und 0s in einer Zeichenfolge wie "1001001001" als zwei verschiedene Farben mit einem VBA-Makro färben. Ist das möglich? Hier ist mein Versuch CodeÄndern bestimmter numerischer Werte in einer Excel-Zelle

Sub changeTextColor() 

    Green = RGB(0, 255, 0) 
    Red = RGB(255, 0, 0) 
    Black = RGB(0, 0, 0) 

    'Select cell 
    Range("H2").Select 

    For x = 1 To 10 
     If ActiveCell.Value = "1" Then 

      'Change the text color if "1" 

      ActiveCell.Font.Color = Green 

     ElseIf ActiveCell.Value = "0" Then 

      'Change the text color if "0" 

      ActiveCell.Font.Color = Red 

     End If 

     ActiveCell.Offset(1, 0).Select 
    Next 
End Sub 
+0

Bitte schreiben Code, den Sie versucht haben. Stack Overflow ist kein Code-Schreibdienst. –

+0

(Bitte bearbeiten Sie das in Ihrem OP, es ist schwer, in einem Kommentar zu lesen) – BruceWayne

+0

Hinzugefügt, meine Entschuldigung – user6442299

Antwort

0

Etwas wie folgt aus:

Sub changeTextColor() 

    Dim v, s, clr, rng, x 

    Set rng = Range("H2") 


    Do While rng.Value <> "" 
     v = rng.Value 
     For x = 1 To Len(v) 

      Select Case Mid(v, x, 1) 
       Case "1": clr = vbGreen 
       Case "0": clr = vbRed 
       Case Else: clr = vbBlack 
      End Select 

      rng.Characters(x, 1).Font.Color = clr 

     Next x 

     Set rng = rng.Offset(1, 0) 
    Loop 
End Sub 
+0

Vielen Dank für die Hilfe, aber das ändert sich alle die Zeichen zu grün anstatt nur die 1? – user6442299

+0

Mein schlechtes - Ich habe nach dem Posten bearbeitet und nicht erneut getestet. Jetzt behoben. –

+0

Danke. Was jetzt passiert, ist, dass der Code das erste Vorkommen der Ziffer nimmt, zum Beispiel, wenn es 10101 ist, wird es die erste 1 sehen und sie grün ändern, aber es ändert auch jede folgende 0 auf grün – user6442299

Verwandte Themen