В Excel 2010 в большом объеме строк и столбцов нужно найти ячейки с недопустимыми символами. К допустимым символам относятся: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 / - ? : ( ) . , ' + пробел.
Нашла в интернете, что для этого используются регулярные выражения. Пытаюсь написать функцию в VBA:
Скажите, пожалуйста, почему данный код не находит недопустимый символ амперсанд "&" в ячейке с текстом "Pen&"? Если в ячейке только "&", то функция выдает результат "Недопустимый символ!".
Нашла в интернете, что для этого используются регулярные выражения. Пытаюсь написать функцию в VBA:
Код:
Public Function Rgx(astring As Range) As String
Dim re As RegExp 'Regular Expressions (Регулярные выражения) - возможность работать со строками с использованием шаблонов
Set re = New RegExp
Dim tempString As String 'для промежуточных результатов
re.Pattern = "[A-z]|[0-9]|\/|-|\?|\:|\(|\)|.|\,|\'|\+|\s)" 'Шаблон, допустимые символы
re.Global = True 'True - проверка всего текста, False - проверка до первого соответствия
re.IgnoreCase = False 'True - учитывать регистр, False - игнорировать регистр
tempString = re.Test(astring) 'возвращает False, если строка не соответствует шаблону
If tempString = False Then Rgx = "Недопустимый символ!" Else Rgx = "Хорошо"
End Function
Скажите, пожалуйста, почему данный код не находит недопустимый символ амперсанд "&" в ячейке с текстом "Pen&"? Если в ячейке только "&", то функция выдает результат "Недопустимый символ!".