简单的事情:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then
debug.print "value changed"
If IsEmpty(Target.Value2) Then
debug.print "ie empty"
else
debug.print "is not empty"
end if
end if
end sub
我添加了:
debug.print "value changed"
以查看“删除”键是否正在触发Worksheet_Change(),但它没有触发,仅在更改值时才触发(或者如果为空则添加)!但是一旦有东西,我选择单元格并按键盘上的DELETE,就什么也没有发生:(
代码有什么问题?
替换:
If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then
with:
If Not Intersect(Target, Range("C1")) Is Nothing Then
EDIT#1:
[一个可能的问题是If
期望Boolean
,并且Intersect()
返回Range
。 Excel试图解释Range
并在某些时候成功。