Функції рядків і підрядків VBA

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 букв.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave