Цей підручник покаже, як використовувати функцію «Замінити VBA» для заміни рядків тексту.
Замінити функцію
Функція заміни VBA повертає рядок із замінами. За допомогою необов'язкових параметрів новий рядок може починатися з позиції, заданої початком, і закінчуватися в кінці вихідного рядка.
VBA Замінити Замінити підрядок
Функцію заміни VBA можна використовувати для заміни будь -якої знайденої підрядка, у кожній її частині.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Замінити ("ABCABCABC", "A", "!")"Результат:"! BC! BC! BC "MsgBox Замінити ("мені подобається рожевий, червоний і чорний", "рожевий", "фіолетовий")Результат: "Мені подобається фіолетовий, червоний і чорний"MsgBox Замінити ("A, B, C, A, B, C, A, B, C", ",", ",")Результат: "ABCABCABC"MsgBox Замінити ("ABCABCABC", "ABC", "!")"Результат:" !!! "MsgBox Замінити ("ABCABCABC", "ABc", "!")Результат: "ABCABCABC"MsgBox Замінити ("ABCABCABC", "ZBC", "!")Результат: "ABCABCABC"End Sub |
VBA Замінити вихідне положення
Функцію заміни VBA можна використовувати для заміни будь -якої знайденої підрядка, у кожній її частині. Якщо ми призначимо початкову позицію, результат буде частиною вихідного рядка після цієї вихідної точки.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Replace ("ABCABCABC", "A", "123") "Результат:" 123BC123BC123BC "MsgBox Замінити ("ABCABCABC", "A", "123", 2) "Результат:" BC123BC123BC "MsgBox Замінити ("ABCABCABC", "A", "123", 7) "Результат:" 123BC "MsgBox Замінити ("ABCABCABC", "A", "123", 8) "Результат:" BC "MsgBox Replace ("ABCABCABC", "ABC", "!@") 'Результат: "!@!@!@"MsgBox Replace ("ABCABCABC", "ABC", "!@", 2) "Результат:" BC!@!@"MsgBox Replace ("ABCABCABC", "ABC", "!@", 6) "Результат:" C!@"MsgBox Replace ("ABCABCABC", "ABC", "!@", 7) "Результат:"!@"MsgBox Replace ("ABCABCABC", "ABC", "!@", 8) "Результат:" BC "End Sub |
VBA Замінити лише кілька випадків
Функцію заміни VBA можна використовувати для заміни будь -якої знайденої підрядка, у кожній її частині. Ми можемо за бажанням вирішити, скільки входів слід замінити.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Replace ("ABCABCABC", "A", "12") "Результат:" 12BC12BC12BC "MsgBox Replace ("ABCABCABC", "A", "12",, 1) 'Результат: "12BCABCABC"MsgBox Замінити ("ABCABCABC", "A", "12",, 2) "Результат:" 12BC12BCABC "MsgBox Replace ("ABCABCABC", "A", "12",, 3) "Результат:" 12BC12BC12BC "MsgBox Replace ("ABCABCABC", "A", "12",, 5) "Результат:" 12BC12BC12BC "MsgBox Замінити ("ABCABCABC", "A", "12", 3, 1)Результат: "C12BCABC"«Ми замінили A на 12, 1 раз, починаючи з позиції 3 вихідного рядка.End Sub |
VBA Замінити чутливість регістру
Функція заміни VBA за замовчуванням чутлива до регістру. Ви можете змінити цю поведінку на регістр без урахування регістру, використовуючи додатковий параметр (vbTextCompare). У цьому випадку ви також повинні визначити вихідну позицію пошуку.
12345678910111213 | Sub ReplaceExample_4 ()MsgBox Замінити ("ABcABCABc", "ABc", "12")Результат: "12ABC12"MsgBox Замінити ("ABcABCABc", "ABc", "12",,, vbTextCompare)Результат: "121212"'Коли ми використовуємо vbTextCompare, нам потрібно додати 2 інші необов'язкові аргументи:'Почніть і порахуйтеMsgBox Замінити ("ABcABCABcABc", "ABc", "12", 3, 1)'Результат: "cABC12ABc"'Почав з позиції 3 і замінив ABC лише 1 раз.End Sub |
Ви також можете виконати заміну без урахування регістру, додавши опцію Порівняти текст у верхній частині модуля:
1 | Опція Порівняти текст |
VBA Замінити подвійні лапки
Функція заміни VBA може замінити символ подвійних лапок, що використовується для розмежування початку та кінця рядка.
Функція VBA Chr може повертати символ з його номера в наборі символів.
1 | MsgBox Chr (34) 'Результат: " |
Або
1 | MsgBox Chr (64) 'Результат: @ |
Подвійні лапки можна використовувати всередині функції VBA Replace за допомогою “” ”” або функції VBA Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx як рядокStrEx = "AB" "AB" ""Результат MsgBox StrEx: AB "AB"MsgBox Замінити (StrEx, Chr (34), "12")Результат: AB12AB12MsgBox Замінити (StrEx, "" "", "DQ")Результат: "ABDQABDQ"End Sub |
VBA Замінити лінію розриву в осередку
Функція заміни VBA може знайти спеціальний символ рядка розриву в клітинці та видалити його або замінити символом пробілу. Спеціальний символ рядка розриву можна ввести в клітинку за допомогою комбінації клавіш Alt+Enter і використовувати в коді VBA з його набором символів за допомогою функції VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Визначте рядкову змінну'Прочитайте значення комірки А2 на аркуші аркуша1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value'Символ лінії розриву, введений за допомогою Alt+Enter, є Chr (10) і невидимий.'Цей рядок коду замінює цей символ пробіломStrEx = Замінити (StrEx, Chr (10), "")'Запишіть замінене значення у клітинку В2 на аркуші аркуша1ThisWorkbook.Worksheets ("Sheet1"). Діапазон ("B2"). Value = StrExEnd Sub |