Excel错误1004,是的时候突出显示双眼细胞灰色

我试图把一个macros,我selectYes连续的,下一个单元格变灰。 所以我有几列是,但是对于我的生活无法找出/修复错误

错误
运行时错误1004
应用程序定义或对象违反的错误

 Private Sub Worksheet_Change(ByVal Target As Range) If ActiveCell.Column = 5 Then Set r = Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 7)) If Target.Value = "Yes" Or Target.Value = "YES" Then r.Interior.Color = RGB(192, 192, 192) Else r.Interior.Color = xlNone End If End If If ActiveCell.Column = 7 Then Set s = Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)) If Target.Value = "Yes" Or Target.Value = "YES" Then s.Interior.Color = RGB(192, 192, 192) Else s.Interior.Color = xlNone End If End If End Sub 

1

改变ActiveCell目标是一个好的开始。 如果一组值被粘贴到重叠列E和/或G的范围内,则还应该补偿多于一个目标单元格。

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Union(Columns(5), Columns(7))) Is Nothing Then On Error GoTo Fìn Application.EnableEvents = False Dim o As Range, t As Range For Each t In Intersect(Target, Union(Columns(5), Columns(7))) Select Case t.Column Case 5 Set o = t.Offset(0, 1).Resize(1, 7) Case 7 Set o = t.Offset(0, 1).Resize(1, 3) End Select If LCase(t.Value) = "yes" Then o.Interior.Color = RGB(192, 192, 192) Else o.Interior.Pattern = xlNone End If Next t End If Fìn: Set o = Nothing Application.EnableEvents = True End Sub 

我只将单元格的范围设置为首先接收填充颜色。 请注意,如果E5收到“是且G5收到“ 否”,那么似乎存在交叉逻辑问题,那么只有K5:L5会变灰。 我把这个比较的结果是非区分大小写的。

错误由安全的出口覆盖。

ActiveCell不是被更改的单元格。 Target是。 您需要将所有对ActiveCell的引用都replace为Target然后相应地调整偏移量。

发现这个问题,但它使用条件突出显示,所以这是什么与macros冲突