VBA има много низови функции, които ще ви позволят да манипулирате и да работите с текст и низове във вашия код. В този урок ще разгледаме функции, които ще ви позволят да извличате поднизове от низове, да премахвате интервали от низове, да преобразувате случая на текст или низ, да сравнявате низове и други полезни низови функции.
Извличане на подниза
Функцията за ляв низ на VBA
Функцията VBA Left ви позволява да извлечете подниза от текст или низ, започвайки от лявата страна. Синтаксисът на функцията VBA Left String е:
Вляво (низ, брой_символи), където:
- Низ - оригиналният текст.
- Брой_символи - Цяло число, което определя броя на знаците за извличане от оригиналния текст, започвайки от началото.
Следният код ви показва как да използвате функцията за ляв низ за извличане на първите четири знака от дадения низ:
1234567891011 | Sub UsingTheLeftStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "AutomateExcel"valueTwo = Ляво (valueOne, 4)MsgBox valueTwoEnd Sub |
Резултатът е:
Функцията Left е извлекла първите четири букви от AutomateExcel, които са Auto.
Функцията за десен низ VBA
Правата функция VBA ви позволява да извлечете подниза от текст или низ, започвайки от дясната страна. Синтаксисът на функцията за десен низ VBA е:
Вдясно (низ, Num_of_characters) където:
- Низ - оригиналният текст.
- Брой_символи - Цяло число, което определя броя на знаците за извличане от оригиналния текст, започвайки от края.
Следният код ви показва как да използвате функцията за десен низ за извличане на последните четири знака от низа:
1234567891011 | Sub UsingTheRightStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "AutomateExcel"valueTwo = Вдясно (valueOne, 4)MsgBox valueTwoEnd Sub |
Резултатът е:
Дясната функция извлече последните четири букви на AutomateExcel, които са xcel.
Функцията за среден низ VBA
Функцията VBA Mid ви позволява да извличате подниза от текст или низ, започвайки от всяка позиция в посочения от вас низ. Синтаксисът на функцията VBA Mid String е:
В средата (низ, начална_позиция, [брой_символи]), където:
- Низ - оригиналният текст.
- Starting_position - Позицията в оригиналния текст, от която функцията ще започне да се извлича.
- Брой_символи (По избор) - Цяло число, което определя броя на знаците за извличане от оригиналния текст, започващ от позицията Starting_position. Ако е празно, функцията MID ще върне всички знаци от позицията Starting_position.
Следният код ви показва как да използвате функцията Mid String за извличане на четири знака, започвайки от втората позиция или символ в низа:
1234567891011 | Под използване на TheMidStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoEnd Sub |
Резултатът се извежда в кутия за съобщения:
Функцията Mid извлича четирите букви на AutomateExcel, започвайки от втория знак/позиция/буква, които са utom.
Намиране на позицията на подниза
Функцията за низ на VBA Instr
VBA Instr функцията връща началната позиция на подниза в друг низ. Тази функция е чувствителна към регистъра. Синтаксисът на VBA Instr String функция е:
Instr ([Start], String, Substring, [Compare]) където:
- Старт (По избор) - Това определя началната позиция за търсене на функцията. Ако е празно, се използва стойността по подразбиране 1.
- Низ - оригиналният текст.
- Подниза- Подниза в оригиналния текст, на която искате да намерите позицията.
- Сравнете (По избор)- Това определя вида на сравнението, което трябва да се направи. Ако е празно, се използва двоично сравнение.
-vbBinaryCompare - Двоично сравнение (Горните и малките букви се считат за различни)
-vbTextCompare - Сравнение на текст (Главни и малки букви се считат за еднакви)
-vbDatabaseCompare - Сравнение на база данни (Тази опция се използва само в Microsoft Access и е сравнение въз основа на базата данни)
Следният код ви показва как да използвате функцията Instr String, за да определите първото появяване на подниза „Th“ в основния низ:
123456789101112 | Под -използванеTheInstrStringFunction ()Dim valueOne As StringDim pozitionofSubstring As IntegervalueOne = "Това е текстът"positionofSubstring = InStr (1, valueOne, "Th")Отстраняване на грешки. Отпечатайте позицията на SubstringEnd Sub |
Резултатът (изведен в непосредствения прозорец) е:
Функцията Instr е върнала позицията на първото появяване на подниза „Th“, която е 1. Обърнете внимание, че тази функция включва интервалите в броя.
Низовата функция VBA InstrRev
Функцията VBA InstrRev връща началната позиция на подниза в друг низ, но започва да брои позицията от края на низа. Тази функция е чувствителна към регистъра. Синтаксисът на низовата функция VBA InstrRev е:
InstrRev (String, Substring, [Start], [Compare]) където:
- Низ - оригиналният текст.
- Подниза- Подниза в оригиналния текст, на която искате да намерите позицията.
- Старт (По избор) - Това определя позицията, от която да започнете търсене. Ако е празно, функцията започва да търси от последния знак.
- Сравнете (По избор)- Това определя вида на сравнението, което трябва да се направи. Ако е празно, се използва двоично сравнение.
-vbBinaryCompare - Двоично сравнение (Горните и малките букви се считат за различни)
-vbTextCompare - Сравнение на текст (Главни и малки букви се считат за еднакви)
-vbDatabaseCompare - Сравнение на база данни (Тази опция се използва само в Microsoft Access и е сравнение въз основа на базата данни)
Следният код ви показва как да използвате функцията InstrRev String, за да определите първото появяване на подниза „Th“ в основния низ, започвайки от края на низа:
1234567891011 | Sub UsingTheInstrRevStringFunction ()Dim valueOne As StringDim pozitionofSubstring As IntegervalueOne = "Това е текстът"positionofSubstring = InStrRev (valueOne, "Th")Отстраняване на грешки. Отпечатайте позицията на SubstringEnd Sub |
Резултатът се извежда в непосредствения прозорец:
Функцията InstrRev е върнала позицията на първото появяване на подниза “Th”, но започва отброяването от края, който е 9. Обърнете внимание, че тази функция включва интервалите в преброяването.
Премахване на пространства от низ
Низовата функция VBA LTrim
Функцията VBA LTrim премахва всички водещи интервали от текст или низ. Синтаксисът на низовата функция VBA LTrim е:
LTrim (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията VBA LTrim за премахване на водещите интервали в дадения низ:
123456789101112 | Под използване на TheLTrimStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "Това е адреса на уебсайта https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Резултатите са:
Функцията LTrim премахна водещите пространства за valuetwo, което е показано във второто поле за съобщения.
Низовата функция VBA RTrim
Функцията VBA RTrim премахва всички крайни интервали от текст или низ. Синтаксисът на низовата функция VBA RTrim е:
RTrim (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията VBA RTrim, за да премахнете крайните интервали в дадения низ:
123456789101112 | Под използване на TheRTrimStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "Това е адреса на уебсайта https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Доставените резултати са:
Функцията RTrim премахна крайните пространства за valuetwo, което е показано във второто поле за съобщения.
Функцията за низ на VBA Trim
Функцията VBA Trim премахва всички начални и последни интервали от текст или низ. Синтаксисът на VBA Trim String функция е:
Подрязване (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията VBA Trim за премахване на предните и задните интервали в дадения низ:
123456789101112 | Под използване на TheTrimStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "Това е адреса на уебсайта https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Резултатите са:
Функцията Trim е премахнала предните и задните пространства за valuetwo, което е показано във второто поле за съобщения.
Функции на случая VBA
Функцията за низ VBA LCase
Функцията VBA LCase преобразува букви в текст или низ в малки букви. Синтаксисът на VBA LCase низовата функция е:
LCase (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията LCase String за преобразуване на всички букви в дадения низ в малки букви:
1234567891011 | Под използване на TheLCaseStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "ТОВА Е ПРОДУКТА"valueTwo = LCase (valueOne)MsgBox valueTwoEnd Sub |
Резултатът е:
Функцията LCase преобразува всички букви в низа в малки букви.
Функцията за низ VBA UCase
Функцията VBA UCase преобразува букви в текст или низ в главни букви. Синтаксисът на функцията за низ VBA UCase е:
UCase (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията UCase String, за да конвертирате всички букви в дадения низ в главни букви:
1234567891011 | Под използване на TheUCaseStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "това е продуктът"valueTwo = UCase (valueOne)MsgBox valueTwoEnd Sub |
Резултатът е:
Функцията UCase е преобразувала всички букви в низа в главни букви.
Функцията VBA StrConv
Функцията VBA StrConv може да преобразува букви в текст или низ в главни, малки букви, правилни букви или unicode в зависимост от вида на преобразуването, който посочите. Синтаксисът на низовата функция VBA StrConv е:
StrConv (String, Conversion, [LCID]) където:
- Низ - оригиналният текст.
- Преобразуване - Типът преобразуване, който искате.
- [LCID] (По избор) -Незадължителен параметър, който определя LocaleID. Ако е празно, се използва системният LocaleID.
Следният код ви показва как да използвате функцията StrConv String за преобразуване на низ в правилен регистър:
1234567891011 | Под използване на TheStrConvStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "това е продуктът"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoEnd Sub |
Резултатът е:
Вие посочвате типа преобразуване, който искате да извършите, като използвате параметъра за преобразуване:
- vbLowerCase преобразува всички букви в текста в малки букви.
- vbUpperCase преобразува всички букви в текста в главни букви.
- vbProperCase преобразува първата буква от всяка дума в текста в главни букви, докато всички останали букви се съхраняват като малки букви.
- vbUnicode преобразува низ в unicode.
- vbFromUnicode преобразува низ от unicode в кодовата страница по подразбиране на системата.
Сравняване на низове
Функцията VBA StrComp
Функцията VBA StrComp String ви позволява да сравнявате два низа. Функцията връща:
- 0, ако двата низа съвпадат
- -1, ако string1 е по -малък от string2
- 1, ако string1 е по -голям от string2
- Нулева стойност, ако някой от низовете е Null
Следният код ви показва как да използвате функцията StrComp за сравняване на два низа:
123456789101112 | Под използване на TheStrCompStringFunction ()Dim valueOne As StringDim value Две As StringРезултатът от нея е сравнен като цяло числоvalueOne = "AutomateExcel"valueTwo = "AutomateExcel"резултатComparison = StrComp (valueOne, valueTwo)Отстраняване на грешки. Отпечатайте резултата от сравнениетоEnd Sub |
Резултатът е:
Функцията StrComp е намерила точно съвпадение между двата низа и е върнала 0.
Операторът като VBA
VBA Like Operator ви позволява да сравнявате текст или низ с модел и да видите дали има съвпадение. Обикновено бихте използвали оператора Like подобно на заместващи символи. Следният код ви показва как да използвате Like Operator:
123456789101112 | Sub UsingTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Нека да видим изхода"Ако valueOne Like "*view*" ТогаваMsgBox "Има съвпадение, този низ съдържа думата изглед"ИначеMsgBox "Не е намерено съвпадение"Край АкоEnd Sub |
Резултатът е:
Заместващите символи, които можете да използвате с оператора Like, за да намерите съвпадения на шаблони, включват:
- ? който съответства на един знак
- #, който съответства на една цифра
- * което съответства на нула или повече знаци
Следният код ви показва как бихте използвали оператора Like и оператора? заместващ знак, за да съответства на модел във вашия код:
123456789101112 | Sub UsingTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Ако valueOne Like "?? e" ТогаваMsgBox "Има съвпадение, модел на съвпадение е намерен"ИначеMsgBox "Не е намерено съвпадение"Край АкоEnd Sub |
Доставеният резултат е:
Други полезни VBA низови функции
Функцията за заместване на низ VBA
Функцията за замяна на VBA замества набор от знаци в низ с друг набор от знаци. Синтаксисът на функцията за заместване на низ VBA е:
Замяна (Низ, Намиране, Замяна, [Старт], [Брой], [Сравняване]) където:
- Низ - оригиналният текст.
- Намери - подниза за търсене в оригиналния текст.
- Замяна - подниза, с която да замените подниза Find.
- Старт (По избор)- Позицията да започнете търсене от оригиналния текст. Ако е празно, се използва стойността 1 и функцията започва от първата позиция на знака.
- Броя (По избор)- Броят на появата на подниза Find в оригиналния текст, който да бъде заменен. Ако е празно, всички събития на подниза Find се заменят.
- Сравнете (По избор)- Това определя вида на сравнението, което трябва да се направи. Ако е празно, се използва двоично сравнение.
-vbBinaryCompare - Двоично сравнение
-vbTextCompare - Сравнение на текст
-vbDatabaseCompare - Сравнение на база данни (Тази опция се използва само в Microsoft Access и е сравнение, основано на базата данни.)
Следният код ви показва как да използвате функцията Replace String:
1234567891011 | Sub UsingTheReplaceStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "ProductABC"valueTwo = Замяна (valueOne, "ABC", "XYZ")MsgBox valueTwoEnd Sub |
Резултатът е:
Функцията Replace намери подниза ABC в ProductABC и я замени с подниза XYZ.
Функцията VBA StrReverse
Функцията VBA StrReverse обръща символите в даден текст или низ. Синтаксисът на VBA StrReverse String функция е:
StrReverse (String), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията VBA StrReverse, за да обърнете символите в низа Product:
1234567891011 | Под използване на TheStrReverseStringFunction ()Dim valueOne As StringDim value Две As StringvalueOne = "Продукт"valueTwo = StrReverse (valueOne)MsgBox valueTwoEnd Sub |
Резултатът е:
Струнната функция VBA Len
Функцията VBA Len връща броя на знаците в текстов низ. Синтаксисът на низовата функция VBA Len е:
Len (низ), където:
- Низ - оригиналният текст.
Следният код ви показва как да използвате функцията Len String за определяне на дължината на низа AutomateExcel:
1234567891011 | Под -използванеTheLenFunction ()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthEnd Sub |
Резултатът е:
Функцията Len преброи всички знаци в текста AutomateExcel, който е 13 букви.