Ошибка в оценке при выборе более чем одной ячейки: ошибка времени выполнения '13': несоответствие типов - PullRequest
0 голосов
/ 26 января 2020

Я оцениваю действительные электронные письма в столбце M, и код работает ...

За исключением случаев, когда я делаю что-либо в любом месте листа, столбца M или в другом месте, которое включает более одной ячейки - например, копирование или вставив несколько ячеек, выбрав и удалив несколько строк и т. д. c., я получаю сообщение об ошибке

«Ошибка времени выполнения« 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

Я хотел бы сохранить код, но не допускать ошибок, когда я только удаляю или вставляю несколько ячеек.

1 Ответ

1 голос
/ 26 января 2020

Вы можете проверить с помощью 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

Примечание : Поскольку ОП не опубликовал свой полный код, я предполагаю, что сообщение было принято во внимание

...