私の主なデータ入力は、「マスター」という名前のワークシートです。単語が入力されたときに範囲 A2:A1000 をチェックインしたい。"CBI"、"Fire"、"InCase"、または "LEA" の場合、列 I (Offset(0, 8)) には何も入力されていない (Interior.ColorIndex = -4142) ため、列 I (オフセット (0, 8)) で何も行う必要はありません。ただし、範囲 A2:A1000 に他の単語が入力されている場合、列 I (オフセット(0, 8)) は別の色 (Interior.Color = RGB(255, 231, 255)) に変更されます。「ワークシート」と「変更」を含む個別のワークシートを選択しましたが、交差を機能させることができません。コードが反復的であることはわかっています...「CBI」、「Fire」、「InCase」、「LEA」などの複数の引数を使用したいのですが、最初のIfターゲット行でクラッシュします。または、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