VBA має багато рядкових функцій, які дозволять вам маніпулювати та працювати з текстом та рядками у вашому коді. У цьому посібнику ми розглянемо функції, які дозволять вам витягати підрядки з рядків, видаляти пробіли з рядків, перетворювати регістр тексту чи рядка, порівнювати рядки та інші корисні рядкові функції.
Видобування підрядка
Функція лівого рядка VBA
Ліва функція VBA дозволяє витягати підрядок з тексту або рядка, починаючи з лівого боку. Синтаксис функції лівого рядка VBA такий:
Вліво (рядок, кількість_символів) де:
- Рядок - оригінальний текст.
- Кількість_символів - Ціле число, яке вказує кількість символів для вилучення з оригінального тексту, починаючи з початку.
Наступний код показує, як використовувати функцію лівого рядка для вилучення перших чотирьох символів даного рядка:
1234567891011 | Додаткове використанняTheLeftStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "AutomateExcel"valueTwo = Вліво (valueOne, 4)MsgBox valueTwoEnd Sub |
Результат такий:
Ліва функція вилучила перші чотири букви AutomateExcel, які є Auto.
Функція правого рядка VBA
Права функція VBA дозволяє витягати підрядок з тексту або рядка, починаючи з правого боку. Синтаксис правої рядкової функції VBA такий:
Праворуч (рядок, кількість_символів) де:
- Рядок - оригінальний текст.
- Кількість_символів - Ціле число, яке вказує кількість символів для вилучення з оригінального тексту, починаючи з кінця.
Наступний код показує вам, як використовувати функцію правого рядка для вилучення останніх чотирьох символів рядка:
1234567891011 | Додаткове використанняTheRightStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "AutomateExcel"valueTwo = Право (valueOne, 4)MsgBox valueTwoEnd Sub |
Результат такий:
Правильна функція вилучила останні чотири букви AutomateExcel, які є xcel.
Функція середнього рядка VBA
Функція VBA Mid дозволяє вам витягати підрядок з тексту або рядка, починаючи з будь -якої позиції у вказаному рядку. Синтаксис функції середнього рядка VBA такий:
Середній (рядок, початкова_позиція, [кількість_символів]) де:
- Рядок - оригінальний текст.
- Початкова_позиція - Позиція у вихідному тексті, з якої функція почне видобувати.
- Кількість_символів (Необов’язково) - Ціле число, яке вказує кількість символів для вилучення з вихідного тексту, починаючи з позиції Starting_position. Якщо поле порожнє, функція MID поверне всі символи з позиції Starting_position.
Наступний код показує, як використовувати функцію Mid String для вилучення чотирьох символів, починаючи з другої позиції або символу в рядку:
1234567891011 | Додаткове використанняTheMidStringFunction ()Dim valueOne As StringДва значення як рядкиvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoEnd Sub |
Результат виводиться на скриньку повідомлень:
Функція Mid виділила чотири букви AutomateExcel, починаючи з другого символу/позиції/літери, які є utom.
Пошук положення підрядка
Функція рядкового рядка VBA
Функція Instra VBA повертає початкове положення підрядка в іншому рядку. Ця функція чутлива до регістру. Синтаксис рядкової функції VBA Instr:
Instr ([Пуск], Рядок, Підрядок, [Порівняти]) де:
- Почати (Необов’язково) - Це вказує початкове положення для функції, з якої здійснюватиметься пошук. Якщо це поле порожнє, використовується значення за промовчанням 1.
- Рядок - оригінальний текст.
- Підрядок- Підрядок у вихідному тексті, позицію якого потрібно знайти.
- Порівняйте (Необов’язково)- Це визначає тип порівняння, яке слід зробити. Якщо поле порожнє, використовується двійкове порівняння.
-vbBinaryCompare - Двійкове порівняння (Великі та малі регістри розглядаються як різні)
-vbTextCompare - Порівняння тексту (Великі та малі регістри вважаються однаковими)
-vbDatabaseCompare - Порівняння бази даних (Ця опція використовується лише в Microsoft Access і є порівнянням на основі бази даних)
Наступний код показує, як використовувати функцію Instr String для визначення першого входження підрядка "Th" у основний рядок:
123456789101112 | Додаткове використанняTheInstrStringFunction ()Dim valueOne As StringЗатемнити позицію Substring As IntegervalueOne = "Це текст"positionofSubstring = InStr (1, valueOne, "Th")Налагодження.Надрукувати позицію підрядкаEnd Sub |
Результат (виведений у вікно негайного пошуку) такий:
Функція Instr повернула позицію першого входження підрядка "Th", яка дорівнює 1. Зверніть увагу, що ця функція включає пробіли в підрахунку.
Рядкова функція VBA InstrRev
Функція VBA InstrRev повертає початкове положення підрядка всередині іншого рядка, але починає підраховувати позицію з кінця рядка. Ця функція чутлива до регістру. Синтаксис рядкової функції VBA InstrRev такий:
InstrRev (Рядок, Підрядок, [Пуск], [Порівняти]) де:
- Рядок - оригінальний текст.
- Підрядок- Підрядок у вихідному тексті, позицію якого потрібно знайти.
- Почати (Необов’язково) - Це вказує позицію, з якої можна почати пошук. Якщо поле порожнє, функція починає пошук з останнього символу.
- Порівняйте (Необов’язково)- Це визначає тип порівняння, яке слід зробити. Якщо поле порожнє, використовується двійкове порівняння.
-vbBinaryCompare - Двійкове порівняння (Великі та малі регістри розглядаються як різні)
-vbTextCompare - Порівняння тексту (великі та малі регістри вважаються однаковими)
-vbDatabaseCompare - Порівняння бази даних (Ця опція використовується лише в Microsoft Access і є порівнянням на основі бази даних)
Наступний код показує, як за допомогою рядкової функції InstrRev визначити перше входження підрядка "Th" у основний рядок, починаючи з кінця рядка:
1234567891011 | Додаткове використанняTheInstrRevStringFunction ()Dim valueOne As StringЗатемнити позицію Substring As IntegervalueOne = "Це текст"positionofSubstring = InStrRev (valueOne, "Th")Налагодження.Надрукувати позицію підрядкаEnd Sub |
Результат виводиться у вікно негайного:
Функція InstrRev повернула позицію першого входження підрядка “Th”, але почала підрахунок з кінця, який дорівнює 9. Зверніть увагу, що ця функція включає пробіли в підрахунку.
Видалення пробілів із рядка
Рядкова функція VBA LTrim
Функція VBA LTrim видаляє всі провідні пробіли з тексту або рядка. Синтаксис рядкової функції VBA LTrim такий:
LTrim (рядок), де:
- Рядок - оригінальний текст.
Наступний код показує, як за допомогою функції VBA LTrim видалити провідні пробіли у даному рядку:
123456789101112 | Додаткове використанняTheLTrimStringFunction ()Dim valueOne As StringДва значення як рядкиvalueOne = "Це адреса веб -сайту 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 StringДва значення як рядкиvalueOne = "Це адреса веб -сайту https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Надані результати:
Функція RTrim видалила кінцеві пробіли для valuetwo, які відображаються у другому вікні повідомлень.
Функція обрізки рядка VBA
Функція обрізки VBA видаляє всі початкові та кінцеві пробіли з тексту або рядка. Синтаксис функції обрізки рядка VBA такий:
Обрізка (рядок) де:
- Рядок - оригінальний текст.
У наведеному нижче коді показано, як за допомогою функції обрізки VBA видалити початковий і кінцевий пробіли в даному рядку:
123456789101112 | Додаткове використанняTheTrimStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "Це адреса веб -сайту https://easyexcel.net/excel/"valueTwo = Обрізати (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Результати такі:
Функція обрізання видалила провідний і кінцевий пробіли для valuetwo, які відображаються у другому вікні повідомлень.
Функції кейсів VBA
Функція рядка VBA LCase
Функція VBA LCase перетворює букви в тексті або рядку в нижній регістр. Синтаксис рядкової функції VBA LCase такий:
LCase (рядок) де:
- Рядок - оригінальний текст.
Наступний код показує, як використовувати функцію рядка LCase для перетворення всіх букв у даному рядку в нижній регістр:
1234567891011 | Додаткове використанняTheLCaseStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "ЦЕ ТОВАР"valueTwo = LCase (valueOne)MsgBox valueTwoEnd Sub |
Результат такий:
Функція LCase перетворила всі букви в рядку на нижній регістр.
Функція рядка VBA UCase
Функція VBA UCase перетворює букви у тексті або рядку у верхній регістр. Синтаксис рядкової функції VBA UCase такий:
UCase (рядок) де:
- Рядок - оригінальний текст.
Наступний код показує, як використовувати функцію рядка UCase для перетворення всіх букв у даному рядку у верхній регістр:
1234567891011 | Додаткове використанняTheUCaseStringFunction ()Dim valueOne As StringДва значення як рядкиvalueOne = "це продукт"valueTwo = UCase (valueOne)MsgBox valueTwoEnd Sub |
Результат такий:
Функція UCase перетворила всі літери в рядку у верхній регістр.
Функція VBA StrConv
Функція VBA StrConv може перетворювати букви у тексті або рядку у верхній регістр, малий регістр, належний регістр або унікод залежно від типу перетворення, який ви вказуєте. Синтаксис рядкової функції VBA StrConv такий:
StrConv (рядок, перетворення, [LCID]) де:
- Рядок - оригінальний текст.
- Конверсія - потрібний тип конверсії.
- [LCID] (Необов’язково) -Необов’язковий параметр, який визначає LocaleID. Якщо це поле порожнє, використовується системний LocaleID.
Наступний код показує, як використовувати функцію StrConv String для перетворення рядка у належний регістр:
1234567891011 | Додаткове використанняTheStrConvStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "це продукт"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoEnd Sub |
Результат такий:
Ви вказуєте тип конверсії, який потрібно виконати, використовуючи параметр перетворення:
- vbLowerCase перетворює всі букви в тексті на нижній регістр.
- vbUpperCase перетворює всі літери в тексті на великі.
- vbProperCase перетворює першу літеру кожного слова в тексті у верхній регістр, тоді як усі інші літери зберігаються як малі.
- vbUnicode перетворює рядок у unicode.
- vbFromUnicode перетворює рядок з unicode на кодову сторінку системи за замовчуванням.
Порівняння рядків
Функція VBA StrComp
Функція рядка VBA StrComp дозволяє порівнювати два рядки. Функція повертає:
- 0, якщо два рядки збігаються
- -1, якщо рядок1 менший за рядок2
- 1, якщо рядок1 більший за рядок2
- Нульове значення, якщо будь -який із рядків був Null
Наступний код показує, як використовувати функцію StrComp для порівняння двох рядків:
123456789101112 | Додаткове використанняTheStrCompStringFunction ()Dim valueOne As StringДва значення як рядкиРезультат порівняння як ціле числоvalueOne = "AutomateExcel"valueTwo = "AutomateExcel"результатComparison = StrComp (valueOne, valueTwo)Налагодження. Друк результатів порівнянняEnd Sub |
Результат такий:
Функція StrComp знайшла точну відповідність між двома рядками і повернула 0.
Оператор типу VBA
Оператор VBA Like Operator дозволяє порівняти текст або рядок із шаблоном і подивитися, чи є відповідність. Ви зазвичай використовуєте оператор "Like" разом із символами підстановки. Наступний код показує, як користуватися оператором Like.
123456789101112 | Додаткове використанняTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Перегляньмо результат"Якщо valueOne Like "*view*" ТодіMsgBox "Існує збіг, цей рядок містить перегляд слів"ІнакшеMsgBox "Відповідність не знайдено"Закінчити ЯкщоEnd Sub |
Результат такий:
Дорожні символи, які можна використовувати з оператором Like для пошуку відповідностей шаблонів, включають:
- ? який відповідає одному символу
- #, що відповідає одній цифрі
- * який відповідає нулю або більше символів
Наступний код показує, як би ви використовували оператор Like та символ підстановки, щоб відповідати шаблону у вашому коді:
123456789101112 | Додаткове використанняTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Якщо valueOne Like "?? e" ТодіMsgBox "Є відповідність, знайдено відповідну модель"ІнакшеMsgBox "Відповідність не знайдено"Закінчити ЯкщоEnd Sub |
Наданий результат:
Інші корисні рядкові функції VBA
Функція заміни рядка VBA
Функція заміни VBA замінює набір символів у рядку іншим набором символів. Синтаксис функції рядка заміни VBA такий:
Замінити (рядок, знайти, замінити, [почати], [порахувати], [порівняти]) де:
- Рядок - оригінальний текст.
- Знайти - підрядок для пошуку у вихідному тексті.
- Замінити - підрядок, на який потрібно замінити підрядок Знайти.
- Почати (Необов’язково)- Положення для початку пошуку з тексту оригіналу. Якщо поле порожнє, використовується значення 1, і функція починається з позиції першого символу.
- Рахувати (Необов’язково)- Кількість входів підрядка Find у вихідному тексті для заміни. Якщо це поле порожнє, усі входження підрядка Знайти замінюються.
- Порівняйте (Необов’язково)- Це визначає тип порівняння, яке слід зробити. Якщо поле порожнє, використовується двійкове порівняння.
-vbBinaryCompare - Двійкове порівняння
-vbTextCompare - Порівняння тексту
-vbDatabaseCompare - Порівняння бази даних (Ця опція використовується лише в Microsoft Access і є порівнянням на основі бази даних.)
Наступний код показує, як використовувати функцію заміни рядка:
1234567891011 | Додаткове використанняTheReplaceStringFunction ()Dim valueOne As StringДва значення як рядкиvalueOne = "ProductABC"valueTwo = Замінити (valueOne, "ABC", "XYZ")MsgBox valueTwoEnd Sub |
Результат такий:
Функція заміни знайшла підрядок ABC у ProductABC і замінила його підрядком XYZ.
Функція VBA StrReverse
Функція VBA StrReverse змінює символи у даному тексті або рядку. Синтаксис рядкової функції VBA StrReverse такий:
StrReverse (String) де:
- Рядок - оригінальний текст.
Наступний код показує, як використовувати функцію VBA StrReverse для зміни символів у рядку Product:
1234567891011 | Додаткове використанняTheStrReverseStringFunction ()Dim valueOne As StringЗначення затемнення Два рядкиvalueOne = "Товар"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 букв.