Следующий код срабатывает каждый раз, когда пользователь выходит из ячейки Excel. Затем он проверяет, соответствует ли значение ячейки выражению регулярного выражения. Это работает.
Если пользователь выбирает диапазон ячеек и, возможно, удаляет содержимое - я получаю ошибку VBA Несоответствие типа 13. Как я могу поставить тест, чтобы пользователь не получил ошибку.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim strPattern As String: strPattern = "^[a-z]{2,4}[0-9]{2,4}$"
Dim regEx As New RegExp
Dim strInput As String
Dim Myrange As Range
Set Myrange = ActiveSheet.Range("A1")
If target.Value <> "" Then
strInput = LCase(target.Value)
With regEx
В этой строке выдается ошибка типа 13:
If target.Value <> "" Then
Необходимо включить проверку, что target.value - это ячейка, а не диапазон перед прогрессом.