1
列Bを監視するこの基本的なworksheet_change関数を作成しました。列Bのセルが削除されると、列Cの削除も更新されます。唯一の問題は、これが変更イベントであるため、一度に2つ以上のセルが変更されると、タイプの不一致エラーがスローされることです。これは、タイプの不一致である ""へのTarget.Address(s)の比較のためです。 1つのセルだけが選択され、複数のセルを選択してもクラッシュしない場合にのみ、この問題を修正する方法はありますか?セルの選択と型の不一致エラー
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B2:B51")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value = "" Then
Range("C" & Target.Row).Clear
End If
End If
End Sub
追加:上記のあなたの質問ごとに、あなたはイベントが上であることを確認するためにこれを行うことができます。
また、もちろんあなたは、
If Target.Count = 1 Then ...
編集を行うことができます'もしTarget.Count> 1ならばExit Sub'。 – BruceWayne
ああ!したがって、範囲で.Count関数を使用することができます。それはとても便利です。私に教えてくれてありがとう!私はあなたに報いることができるように答えの形であなたのコメントを配置してください。 – Brad
また、 'Target(Target) 'はすでにRangeであるため、' Range(Target.Address) 'を使う必要はありません。単純に' Target'を使います。全行で 'If Not Application.Intersect(KeyCells、Target))は何もない' –