首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在列A中的值发生更改时更改行颜色的VBA代码

用于在列A中的值发生更改时更改行颜色的VBA代码
EN

Stack Overflow用户
提问于 2010-11-23 23:33:01
回答 2查看 27.9K关注 0票数 2

我的电子表格是这样设置的:

我在A列中有一个职位编号列表,在B列中有一个对应的职位列表。我需要对某个职位编号的所有行进行着色。例如,行2-4在列A中具有"3705“,因此这些行将被着色为红色。第5行和第6行在列A中有4169,并且将显示为绿色。行7-10在列A中有5518行,并且将被着色为红色(在红色和绿色之间交替)。

谁能给我一个VBA代码,它将自动/使用宏执行我上面描述的操作?

谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-24 00:09:48

代码语言:javascript
复制
Sub colorize()

Dim r As Long, val As Long, c As Long

    r = 1
    val = ActiveSheet.Cells(r, 1).Value
    c = 4 '4 is green, 3 is red '

    For r = 1 To ActiveSheet.Rows.Count
        If IsEmpty(ActiveSheet.Cells(r, 1).Value) Then
            Exit For
        End If

        If ActiveSheet.Cells(r, 1).Value <> val Then
            If c = 3 Then
                c = 4
            Else
                c = 3
            End If
        End If

        ActiveSheet.Rows(r).Select
        With Selection.Interior
            .ColorIndex = c
            .Pattern = xlSolid
        End With

        val = ActiveSheet.Cells(r, 1).Value
    Next

End Sub

如果希望每次列A中的单元格更改值时都触发宏,请将以下内容添加到相关工作表的模块中:

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("A:A")) Is Nothing Then
        Exit Sub
    End If

    colorize

End Sub
票数 3
EN

Stack Overflow用户

发布于 2011-10-02 11:16:05

如果可以添加列,则可以仅使用Excel公式和条件格式来完成此操作。您可能无法交替使用红色/绿色,但只能选择一种颜色,而不是任何颜色。

Alternate Excel Row Color Based on Content

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4257730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档