VBA-根据定义的值更改单元格的颜色

时间:2018-12-18 09:09:53

标签: excel vba

如果要满足条件,我想编写一些代码来更改单元格的内部颜色。这种情况是:如果给定单元格的值(日期)如今天的date <20,则该单元格的内部颜色会更改。

我希望将这些更改应用于右边的四个单元格(4列)。子仅适用于一个单元格。任何想法有什么问题吗?循环有问题吗?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    If Target.Column = 8 Then
        For i = 2 To i = 6
            If Target.Offset(0, i).Value - Date < 20 Then
                Target.Offset(0, i).Interior.Color = rgbRed
            Else: Target.Offset(0, i).Interior.Color = rgbWhite
            End If
        Next i
    End If
End Sub

1 个答案:

答案 0 :(得分:-1)

For i = 2 To i = 6

将其更改为

For i = 2 To 5

5 ,因为您只想更改四个单元格,其偏移量为2、3、4和5。

更新

如果要在单元格值为空的情况下停止格式化,则在满足此条件时退出循环:

 For i = 2 To 5
    If Trim(Target.Offset(0, i).Value) = "" Then
        Exit For
    End If
    ...
 Next i