【问题标题】:Error in Evaluate when selecting more than one cell: Run-time error '13': Type Mismatch选择多个单元格时评估错误:运行时错误“13”:类型不匹配
【发布时间】:2020-03-21 22:21:21
【问题描述】:

我评估 M 列中的有效电子邮件并且代码有效...

除非我在工作表、M 列或其他地方的任何位置执行任何涉及多个单元格的操作 - 例如复制或粘贴多个单元格、选择和删除多行等,我都会收到错误消息

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

调试指向此代码。

If Target.Column = 13 And Target.Value <> "" And _
  Evaluate("COUNTIF(" & Target.Address & ",""*@*.*"")") <> 1 Then
    Target.ClearContents
    Target.Activate
    MsgBox "Please enter a valid email address."
End If

我想保留代码,但在我只删除或粘贴多个单元格时防止出现错误。

【问题讨论】:

    标签: excel vba mismatch


    【解决方案1】:

    您可以通过target.Cells.CountLarge 检查是否选择了多个单元格,或者将其添加到您的代码中,它可能看起来像这样

    If Target.Cells.CountLarge = 1 Then
        ' Your code goes here
    End If
    

    更新:您的代码应该是这样的

    If Target.Cells.CountLarge = 1 Then
    
        ' This is your code, right?
        If Target.Column = 13 And Target.Value <> "" And Evaluate("COUNTIF(" & Target.Address & ",""*@*.*"")") <> 1 Then
            Target.ClearContents
            Target.Activate
            MsgBox "Please enter a valid email address."
        End If
    
    End If
    

    备注:由于 OP 没有发布他的完整代码,我认为 post 已被考虑

    【讨论】:

    • 仍然遇到同样的错误。那到底是怎么粘贴的?我是一个真正的业余爱好者,但是当我在我的代码中的任何地方发布它时,我遇到了麻烦,因为我的代码已经是一个“IF”函数。谢谢你帮助我。
    • @LorenScholes 把你的代码放在上面写着' Your code goes here
    • @Storax。非常感谢!我不知道那个特定的帖子,但我现在或将来参考它已添加书签。我已经工作了几个小时来解决这个问题。希望我能给你一个以上的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多