输入/更改值时如何更改单个单元格文本颜色

时间:2014-10-24 07:47:48

标签: excel vba excel-formula conditional-formatting worksheet-function

我希望在输入数字时让单元格更改文本颜色,但列中的现有数字需要保持相同的颜色,除非我更改它们。 在图像中,您可以看到我有预先填充文本的行和列。每当进行更改时,我都希望文本字体颜色(仅A列的颜色)从黑色变为红色。

E.g。如果我想将数字02更改为另一个数字,一旦输入新数字,新数字会自动将文本颜色更改为红色,但是它下面的数字03,04,05,06将保持黑色,直到我更改它们为止 - 如果需要

我尝试了条件格式,但在输入文本时将所有单元格更改为红色(包括已存在的单元格...)

http://postimg.org/image/doqokmd6x/

3 个答案:

答案 0 :(得分:0)

添加一些vba代码

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 1 Then
  Target.Interior.ColorIndex = 3
 End If
End Sub

http://msdn.microsoft.com/en-us/library/office/ff839775%28v=office.15%29.aspx

答案 1 :(得分:0)

这应该适合您的要求。

Public strOldValue As String

Public Sub Worksheet_SelectionChange(ByVal Target As Range)
     'Assign previous value to a variable
    strOldValue = Target.Value

End Sub

Public Sub Worksheet_Change(ByVal Target As Range)

    Dim strNewValue As String
    'Check for first Column
    If Target.Column = 1 Then
        'Assign New Value
        strNewValue = Target.Value
        'Compare Old value and New Value
        If Trim(strOldValue) <> strNewValue Then
            Target.Interior.Color = vbRed
        End If
    End If

End Sub

答案 2 :(得分:0)

我自己对上面的VBA进行了一些更改,这是我正在寻找的:

Private Sub Worksheet_Change(ByVal Target As Range)
Target.Font.ColorIndex = 3
    If Target.Column = 1 Then
    Target.Interior.ColorIndex = 2
End If
End Sub