Този урок ще покаже как да използвате заместващи знаци във VBA.
Заместващите символи се използват във всички езици за програмиране и приложения за бази данни, като SQL Server. Заместващ знак може да бъде дефиниран като символ, който се използва за замяна на един или повече знаци в текстов низ. Например този текстов низ - „mo*“ - ще намери думите мама, мишка, лос, мама и т.н .; докато този текстов низ „mo?“ ще намери ли само думата мама като заместител? заменя само един знак.
Използваме заместващи символи с оператора Like, което е по -лесна алтернатива на VBA Regex.
Използване на заместващ знак Asterix (*) във VBA
Заместващият знак Asterix заменя един или повече знаци във низ VBA.
Нека разгледаме следния диапазон от клетки в Excel:
Използвайки заместващ знак Asterix във нашия VBA код, можем да намерим всички имена, които започват с „M“ и променят цвета на текста на червен.
12345678 | Sub CheckForM ()Dim x като цяло числоЗа x = 3 до 8Ако Range ("B" & x). Стойност като "M*" ТогаваДиапазон ("B" & x). Font.Color = vbRedКрай АкоСледващ xEnd Sub |
Следователно претърсихме диапазона и намерихме всички първи имена, които започват с буквата М, тъй като нашият заместващ низ е „М*”
Резултатът от изпълнението на горния код е показан по -долу.
Ако трябваше да използваме заместващия низ „Ma*“ - тогава само първите имена в B3 и B4 ще се променят.
Използване на въпросителен знак (?) Заместващ знак във VBA
Въпросителният знак ще замени единичен знак във низ VBA.
Помислете за следните данни:
Можем да използваме заместващия низ „? Im“, за да намерим всички имена, завършващи на „im“
12345678 | Sub CheckForIM ()Dim x като цяло числоЗа x = 3 до 8Ако Range ("B" & x). Стойност като "? Im" ТогаваДиапазон ("B" & x). Font.Color = vbRedКрай АкоСледващ xEnd Sub |
Резултатът от изпълнението на този код е показан по -долу:
Използване на [char list] като заместващ знак
Горният пример може да бъде леко модифициран, за да ни позволи да използваме въпросителен знак, в допълнение към списък със знаци на разрешените знаци. Следователно низът с заместващи знаци може да бъде променен на „? [E-i] m“, където първият знак може да бъде всичко, вторият знак трябва да бъде знак между e и i, а последната буква трябва да е знакът „m“. Допускат се само 3 знака.
12345678 | Sub CharListTest ()Dim x като цяло числоЗа x = 3 до 8Ако Range ("B" & x). Стойност като "? [E-i] m" ТогаваДиапазон ("B" & x). Font.Color = vbRedКрай АкоСледващ xEnd Sub |
Резултатът от този код би бил:
VBA програмиране | Code Generator работи за вас!
Използване на хеш (#) заместващ знак във VBA
Хаш (#) заместващ знак замества една цифра във низ VBA. Можем да сравним между 0 и 9.
12345678910 | Sub CheckForNumber ()Dim x като цяло число, y като цяло числоЗа x = 3 до 8За y = 2 до 5Ако ActiveSheet.Cells (x, y) Харесва "##" ТогаваActiveSheet.Cells (x, y). Font.Color = vbRedКрай АкоСледващ yСледващ xEnd Sub |
Горният код ще премине през всички клетки в диапазона („B3: E8“) и ще промени цвета на текста в клетка на ЧЕРВЕН, ако в тази клетка бъде намерено двуцифрено число.
В примера по -долу кодът ще промени номера само ако последното число е 9.
12345678910 | Sub CheckFor9 ()Dim x като цяло число, y като цяло числоЗа x = 3 до 8За y = 2 до 5Ако ActiveSheet.Cells (x, y) Харесва "#9" ТогаваActiveSheet.Cells (x, y). Font.Color = vbRedКрай АкоСледващ yСледващ xEnd Sub |