データ検証用ドロップダウンリストのマクロを作成しました。これは、隣り合う2つの列のセルに、値に応じて、または選択に応じて黄色で塗りつぶします。以下は、これがどのように見えるかの写真です:私は、ドロップダウンリストから、「YES」を選択した後、私は、隣接する二つのセル内のデータを値またはテキストがそのセルに入力されると、セルの背景色を削除するにはどうすればよいですか?
を入力すると、黄色の塗りつぶしは、所定の位置に残っています。以下は、これがどのように見えるかの画像です:
目標:私は黄色ががを削除または任意の値に一度「埋められていない」またはテキストは、そのセルに入力されます記入したいと思います。
VBAでこれを行う方法はありますか?私はこれが条件付き書式設定で実行可能であることを認識していますが、これがVBAで実行可能かどうかを見たいと思っていました。以下は
私が叩いている私のコードです:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Count > 1 Then Target.Interior.ColorIndex = xlNone
If Target.Count > 1 Then Exit Sub
Select Case Target
Case "YES"
If Target = "YES" Then
Target.Offset(0, 1).Interior.ColorIndex = 6
Target.Offset(0, 2).Interior.ColorIndex = 6
If Target.Offset(0, 1).Value = "NULL" Then Target.Offset(0, 1).ClearContents
If Target.Offset(0, 2).Value = "NULL" Then Target.Offset(0, 2).ClearContents
If Target.Offset(0, 1).Value = "NULL" Then Target.Offset(0, 1).Interior.Pattern = xlNone
If Target.Offset(0, 2).Value = "NULL" Then Target.Offset(0, 2).Interior.Pattern = xlNone
If Not Target.Cells.Count = 1 Then
Exit Sub
If Intersect(Target, Columns(2)) Is Nothing Then
Exit Sub
End If
End If
End If
Case Else
If Target = "NO" Then
Target.Offset(0, 1) = "NULL"
Target.Offset(0, 2) = "NULL"
If Target.Offset(0, 1).Interior.ColorIndex = 6 Then Target.Offset(0, 1).Interior.Pattern = xlNone
If Target.Offset(0, 2).Interior.ColorIndex = 6 Then Target.Offset(0, 2).Interior.Pattern = xlNone
If Not Target.Cells.Count = 1 Then
Exit Sub
If Intersect(Target, Columns(2)) Is Nothing Then
Exit Sub
End If
End If
End If
End Select
End Sub
私はこの問題上の任意の助けをいただければ幸いです!
は、なぜあなたは1 1Columnsと交差するために(2)をテストしています?私は他の多くの質問をしています... –
あなたのコードと誤って使用されたケースステートメントに少し混乱があるようです。 – perfo