VbA Worksheet_Change 无法识别单元格上的 DELETE 键
VbA Worksheet_Change doesnt recognize DELETE key on cell
简单的事情:
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"
查看 "delete" 键是否触发了 Worksheet_Change() 而它没有,它仅在更改值时触发(或如果为空则添加)!但是一旦有东西,我 select 单元格并按键盘上的 DELETE,什么也没有发生:(
代码有什么问题?
替换:
If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then
与:
If Not Intersect(Target, Range("C1")) Is Nothing Then
编辑#1:
一个可能的问题是 If
期望 Boolean
而 Intersect()
返回 Range
。 Excel 正在尝试解释 Range
并在某些时候成功。
简单的事情:
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"
查看 "delete" 键是否触发了 Worksheet_Change() 而它没有,它仅在更改值时触发(或如果为空则添加)!但是一旦有东西,我 select 单元格并按键盘上的 DELETE,什么也没有发生:(
代码有什么问题?
替换:
If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then
与:
If Not Intersect(Target, Range("C1")) Is Nothing Then
编辑#1:
一个可能的问题是 If
期望 Boolean
而 Intersect()
返回 Range
。 Excel 正在尝试解释 Range
并在某些时候成功。