选择多个单元格时计算错误:运行-time error '13': Type Mismatch

Error in Evaluate when selecting more than one cell: Run-time error '13': Type Mismatch

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

除非我在 sheet、M 列或其他地方的任何地方执行任何涉及多个单元格的操作 - 例如复制或粘贴多个单元格、选择和删除多行等,我得到错误信息

"Run-time error '13': Type Mismatch"

调试指向这段代码。

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

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

您可以检查 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 他的完整代码,我认为这个 post 已被考虑在内