2016-06-08 60 views
0

我想使用VBA宏將字符串中的1和0例如「1001001001」着色爲兩種不同的顏色。這可能嗎? 這裏是我試圖代碼更改Excel單元格中的特定數值

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

請張貼代碼,您都試過了。堆棧溢出不是代碼寫入服務。 –

+0

(請改爲將其編輯到您的OP中,很難在評論中閱讀) – BruceWayne

+0

已添加,我的道歉 – user6442299

回答

0

事情是這樣的:

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

謝謝你的幫助,但是這改變了所有字符變成綠色而不是隻有1的字符? – user6442299

+0

我的不好 - 我發佈後編輯並沒有重新測試。現在修復。 –

+0

謝謝。現在發生的事情是代碼是第一次出現的數字,例如,如果它是10101,它會看到前1並將其更改爲綠色,但它也會隨着0每改變綠色以及 – user6442299

相關問題