VBA Like Operator

Във 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 с различни модели на съвпадение

wave wave wave wave wave