types单元格select不匹配错误

我创build了这个监视列B的基本worksheet_change函数。如果列B中的单元格被删除,它也会更新列C中的删除。 唯一的问题是,因为这是一个变化事件,当一次更改2个单元格时,会引发types不匹配错误。 这是因为它将Target.Address(s)与types不匹配的“”比较。 我怎样才能解决这个问题,只能运行,如果只有一个单元格select,而不是在多单元格select崩溃?

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 

要简单地检查Target范围是否改变了多个单元格,您可以简单地计算范围内的单元格。

正如在评论中提到的那样,在你声明子之后,你可以添加:

If Target.Count > 1 Then Exit Sub

或者,当然你可以做, If Target.Count = 1 Then ...

编辑:根据你的问题,你可以这样做,以确保事件:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Application.EnableEvents = True Exit Sub End If ' Code here that will run, if the Target is just one cell End Sub