根据第1列的星期几更改Excel行背景颜色

时间:2014-09-16 22:28:19

标签: excel vba excel-vba

我搜索并查看了类似的问题,但无法找到我正在寻找的内容。

我想根据星期几(星期一是绿色,星期日是红色,太阳是黄色等)将行的背景设置为某种颜色,在列中输入的日期值A.

有人可以帮助我使用VBA代码实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

这个VBA代码应该这样做:

WeekdayColorIndex

的参考文档

我没有检查当天的颜色是否正确;正确的值可以在我链接的文档中找到。

Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 1 Then
        For Each Cell In Target
            Select Case Weekday(Cell.Value)

                Case Is = 1
                    Cell.Columns("A:J").Interior.ColorIndex = 1

                Case Is = 2
                    Cell.Columns("A:J").Interior.ColorIndex = 2

                Case Is = 3
                    Cell.Columns("A:J").Interior.ColorIndex = 3

                Case Is = 4
                    Cell.Columns("A:J").Interior.ColorIndex = 4

                Case Is = 5
                    Cell.Columns("A:J").Interior.ColorIndex = 5

                Case Is = 6
                    Cell.Columns("A:J").Interior.ColorIndex = 6

                Case Is = 7
                    Cell.Columns("A:J").Interior.ColorIndex = 7

            End Select
        Next
    End If
End Sub

答案 1 :(得分:0)

免责声明:我在发布条件格式示例后才注意到有人询问了VBA解决方案。

使用条件格式,您可以尝试:

  1. 在工作表中输入一些日期
  2. WEEKDAY函数应用于=WEEKDAY(CELLREF)。这将返回一个从1到7的数字,表示一周中的某一天。
  3. 应用条件格式,使用" Cell值等于"每天给它的颜色。规则:
  4. A sheet with some dates

    接下来的规则:

    2 rules applied

    具体规则:

    Specific for Sundays...

    这仅适用于星期日和另一天,但您应该可以选择其他日子的颜色。

    请注意,我在Mac上运行Excel但在Windows上,你应该在这里找到条件格式:

    On Windows

    条件格式和日期的更详细说明是here

    修改

    使用条件格式设置格式化整个行:

    1. 选择行
    2. 转到条件格式界面
    3. 选择"使用公式确定要格式化的单元格"
    4. 请参阅"参考"行选择中的单元格并输入公式,例如=$C5=1
    5. 以同样的方式,为其他日子做颜色
    6. 你会得到类似的东西:

      Formatting based on rule

      Specific rule

      这将导致:

      Sunday!

      更改单元格的日期:

      Green!