选择多个单元格时计算错误:运行-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 已被考虑在内
我评估了 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 已被考虑在内