“运行时错误'13':类型不匹配”错误消息

时间:2018-01-31 19:58:28

标签: vba runtime-error

下午好。

我是VBA的新人。根据我在互联网上的研究,当NG输入到范围内的单元格时,我已经能够添加一些显示消息框的行。但是,当我尝试从多个单元格中删除输入时,收到Run-time error ‘13’: Type mismatch消息。任何想法我做错了什么以及如何解决它?我添加了下面VBA中的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("I3:JY30")) Is Nothing Then Exit Sub
    If Target.Value <> "NG" Then Exit Sub
    MsgBox "ATTENTION: If bell cup is No Good, please replace with new cup and notify supervisor/leader for review. Also, document bell cup serial number and concern on worksheet titled Scrap Bell Tracking "
End Sub

此外,当我单击Debug时,If Target.Value <> "NG" Then会突出显示。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Target是一个范围,因此它可能包含多个单元格。在这种情况下,Value属性无效。

一个简单的解决方案是忽略多个单元格的更改:为此,我们需要在访问Value属性之前添加以下内容:

If Target.Count <> 1 Then Exit Sub

但如果e,那就不会显示消息。 G。用户粘贴五个单元格,其中一个或多个包含文本。完美的解决方案是循环遍历范围并分别检查每个单元格。如果在多个单元格中找到文本,您将不得不考虑是否要多次显示该消息。所以,我会将其作为练习留给读者......