【问题标题】:How to change individual cell text colour when values are entered/changed输入/更改值时如何更改单个单元格文本的颜色
【发布时间】:2014-12-20 00:50:56
【问题描述】:

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

例如如果我想将数字 02 更改为另一个数字,一旦输入新数字,新数字会自动将文本颜色更改为红色,但其下方的数字 03、04、05、06 将保持黑色,直到我更改它们 - 如有必要.

我尝试了条件格式,但是当输入文本时所有单元格都变为红色(包括已经存在的单元格...)

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

【问题讨论】:

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


    【解决方案1】:

    添加一些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

    【讨论】:

      【解决方案2】:

      这应该可以满足您的要求。

      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
      

      【讨论】:

        【解决方案3】:

        自己对上述 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
        

        【讨论】:

          猜你喜欢
          • 2020-09-25
          • 1970-01-01
          • 1970-01-01
          • 2011-04-11
          • 2012-01-23
          • 1970-01-01
          • 2019-12-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多