我的主要数据输入是一个名为“主”的工作表。我想在输入单词时检查 Range A2:A1000。如果它是“CBI”、“Fire”、“InCase”或“LEA”,则不需要在 I 列(偏移量(0, 8))中发生任何事情,因为它已经没有填充(Interior.ColorIndex = -4142)。但是,如果在范围 A2:A1000 中输入了任何其他单词,则 I 列 (Offset(0, 8)) 将更改为不同的颜色 (Interior.Color = RGB(255, 231, 255))。我选择了带有“工作表”和“更改”的离散工作表,但无法让相交函数发挥作用。我知道代码是重复的......我想使用多个参数,例如,“CBI”、“Fire”、“InCase”、“LEA”......但它在 firstIf Target 行崩溃。或者,Select Case 参数可能会更好。我已经在搜索“单元格更改时运行 vba”中查看了 stackoverflow 结果,并尝试修改但没有成功。我还在单独的模块中尝试了几次编码尝试,我的其他 Subs 运行良好,但我们将不胜感激。
Private Sub Worksheet_Change(ByVal Target As Range)
'Change interior color in Offset cell if certain words not entered in Range A2:A1000
If Not Intersect(Target, Range("A2:A1000")) Is Nothing Then
If Target(Range("A2:A1000"), "CBI") > 0 Then
ActiveCell.Offset(0, 8).Interior.ColorIndex = -4142
Else
If Target(Range("A2:A1000"), "Fire") > 0 Then
ActiveCell.Offset(0, 8).Interior.ColorIndex = -4142
Else
If Target(Range("A2:A1000"), "InCase") > 0 Then
ActiveCell.Offset(0, 8).Interior.ColorIndex = -4142
Else
If Target(Range("A2:A1000"), "LEA") > 0 Then
ActiveCell.Offset(0, 8).Interior.ColorIndex = -4142
Else
ActiveCell.Offset(0, 8).Interior.Color = RGB(255, 231, 255)
End If
End If
End Sub