繁体   English   中英

基于单元格值的颜色单元格

[英]Color Cell Based on Value in Cell

我使用宏将来自几个工作簿的信息合并到新工作簿的一个表中。

在一个专栏中,我创建了一个名为ColRange的命名范围。 该列的数字范围为-350至500。

如何根据单元格中文本的值更改单元格的颜色。
红色(0-500)黄色(-5-0)绿色(-350--5)

看看条件格式 您甚至可能不需要VBA来执行此操作。

话虽如此,VBA代码看起来像这样:

Public Sub colorit()
    Dim colRange As Range
    Dim rowNum As Integer
    Dim rnum As Integer

    rnum = 20
    Set colRange = Range(Cells(2, 9), Cells(rnum, 9))

    For rowNum = 1 To colRange.Rows.Count
        If colRange.Cells(rowNum, 1).Value <= -5 Then
            colRange.Cells(rowNum, 1).Interior.Color = RGB(0, 255, 0)
        ElseIf colRange.Cells(rowNum, 1).Value <= 0 Then
            colRange.Cells(rowNum, 1).Interior.Color = RGB(255, 255, 0)
        ElseIf colRange.Cells(rowNum, 1).Value <= 500 Then
            colRange.Cells(rowNum, 1).Interior.Color = RGB(255, 0, 0)
        End If
    Next rowNum
End Sub

假设值是存储在列中的数字,则:

If value >= 0 AND value <= 500 Then
    ColRange.Interior.Color = RGB(255,0,0)
ElseIf  value >= -5 Then
    ColRange.Interior.Color = RGB(255,255,200)
Else
    ColRange.Interior.Color = RGB(0,255,0)
End If

并且假设值不可能大于500或小于-350,或者无法通过脚本验证。 另外,您的范围有点重叠,0应该是什么颜色? 红色还是黄色?

这是对原始问题的回答,是对文森特的回答的简单修改:

如果它是一个命名范围(使用UI:Insert,Name,Define):

Dim c As Range

For Each c In Range("ColRange").Cells
    If c.Value >= 0 And c.Value <= 500 Then
        c.Interior.Color = RGB(255, 0, 0)
    ElseIf c.Value >= -5 Then
        c.Interior.Color = RGB(255, 255, 200)
    Else
        c.Interior.Color = RGB(0, 255, 0)
    End If

Next c

如果是范围对象,则在代码中定义:

Dim c as Range

For Each c In colRange.Cells

    If c.Value >= 0 And c.Value <= 500 Then
        c.Interior.Color = RGB(255, 0, 0)
    ElseIf c.Value >= -5 Then
        c.Interior.Color = RGB(255, 255, 200)
    Else
        c.Interior.Color = RGB(0, 255, 0)
    End If

Next c

我认为Vincent的响应不太有效,因为它试图在If Then内对整个ColRange范围进行操作,而不是一次对每个单元进行操作。 (因此,您可能还需要使用Application.ScreenUpdating = False将其包装

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM