Във VBA можете да сравните два низа с помощта на като оператор за проверка на съвпадението на низовете. В този урок ще научите как да използвате този оператор с различни модели.
Ако искате да научите как да сравнявате низове във VBA, щракнете тук: VBA Сравнете низове - StrComp
Ако искате да научите как да използвате оператори за сравнение, щракнете тук: VBA Comparison Operators - Not Equal to & More
Използване на оператора Like за сравняване на две низове
С оператора Like можем да проверим дали низ започва с конкретен текст, включва го и т.н. По подразбиране като операторът сравнява знаците, използвайки двоичния метод. Това означава, че операторът е чувствителен към регистъра. Ако искате да го направите чувствителен към регистър, трябва да поставите Опция Сравняване на текст в горната част на вашия модул. Използвайки този метод, като операторът счита „S“ и „s“ за едни и същи знаци. В нашите примери ще използваме сравнението по подразбиране, чувствително към регистъра.
Ако съвпадението съществува, като операторът връща True в резултат или False в противен случай.
Първо, ще разгледаме простия пример, в който искаме да проверим дали нашата низова променлива започва с г-н. За да направите това, трябва да поставите звездичка (*) в края на съвпадащия текст (Г-н*). Ето кода:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim bln Резултат Като булевstrName = "Мистър Майкъл Джеймс"Ако strName като "Mr*" ТогаваblnResult = ВярноИначеblnResult = FalseКрай АкоEnd Sub |
В този пример искаме да проверим дали низ strName започва с г-н и да върне True или False в променливата blnResult.
Първо, задаваме стойността на strName да се Г -н Майкъл Джеймс:
1 | strName = "Мистър Майкъл Джеймс" |
След това използваме като оператор в оператора If:
12345 | Ако strName като "Mr*" ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако |
Като strName започва с г-н, blnResult връща True:
Изображение 1. Използвайки оператора Like, за да проверите дали низът започва с определени знаци
Използване на оператора Like с различни модели на съвпадение
Операторът Like може да провери съвпадението на два низа въз основа на различни модели. Ето списъка с възможни модели на съвпадение:
Код на модел |
Тип съвпадение |
* | Съвпада с 0 или повече знака |
? | Съвпада с един знак |
# | Съвпада с една цифра |
[символи] | Съвпада с един знак от списък със символи |
[А-Я] | Съвпада с всеки главен знак от азбуката |
[A-Za-z] | Съвпада с всеки знак от азбуката |
[! символи] | Съвпада с един знак, изключващ списък със символи |
Сега можем да видим как да използваме тези модели в кода. Ето примера за множество модели:
Съвпадение на един знак:
1234567 | strText1 = "ABCDE"Ако strText1 като "AB? DE" ТогаваblnResult1 = ВярноИначеblnResult1 = FalseКрай Ако |
Съвпадение с една цифра:
1234567 | strText2 = "AB7DE"Ако strText2 Като "AB#DE" ТогаваblnResult2 = ВярноИначеblnResult2 = FalseКрай Ако |
Съвпадение с всеки главен знак от азбуката:
1234567 | strText3 = "ABCDE"Ако strText3 като "AB [A-Z] DE" ТогаваblnResult3 = ВярноИначеblnResult3 = FalseКрай Ако |
Не съответства на нито един главен знак от азбуката:
1234567 | strText4 = "AB7DE"Ако strText4 Като "AB [! A-Z] DE" ТогаваblnResult4 = ВярноИначеblnResult4 = FalseКрай Ако |
Съвпадение на всеки знак от азбуката (главни или малки букви):
1234567 | strText5 = "ABcDE"Ако strText5 Като "AB [A-Za-z] DE" ТогаваblnResult5 = ВярноИначеblnResult5 = FalseКрай Ако |
Когато изпълните кода, можете да видите, че като операторът връща True in blnResult променливи за всяко сравнение:
Изображение 2. Използване на оператора Like с различни модели на съвпадение