运行时错误在Worksheet_Change
问题描述:
删除行,当我有这个代码的问题:运行时错误在Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
If Target Is Nothing Then Exit Sub
MsgBox Target.Value
End Sub
我输入文本的一些细胞,我得到一个消息框后,但如果我尝试,我删除该行刚进入了一个文本,我得到一个错误:
Run-time error '13': Type mismatch
我怎样才能解决这个问题?为什么这种情况不能抓住它?
答
当您作为结果删除行时,整个行在您的过程中为target
对象。因此你的宏不能返回该行的值。
什么程序员通常做的是这是你的消息框前检查附加条件:
If Target.Count =1 Then
'your messagebox here
End If
+0
这工作。但为什么? – Tyrick 2014-07-14 18:40:40
+0
@Tyrick,其实这个条件与这个'如果Target.Cells.Count = 1'是一样的,这意味着我们检查有多少个单元受到这个变化的影响。如果只有一个我们触发行动,并拒绝所有其他情况,当用户一次更改/删除更多细胞。 – 2014-07-15 05:30:46
对不起,错过了重要的部分MSGBOX Target.Value – yuris 2013-03-20 14:18:58