VBA Replace Function - Zamień ciąg

Spisie treści

W tym samouczku zademonstrujemy, jak używać funkcji Replace VBA do zastępowania ciągów tekstu.

Zamień funkcję

Funkcja VBA Replace zwraca ciąg z wykonanymi podstawieniami. Przy użyciu parametrów opcjonalnych nowy ciąg może zaczynać się w pozycji określonej przez start i kończyć się na końcu oryginalnego ciągu.

Zamień VBA Zastąp podciąg

Funkcja VBA Replace może służyć do zastępowania dowolnego znalezionego podciągu, w każdej znalezionej części.

12345678910111213141516 Sub ReplaceExample_1()MsgBox Replace("ABCABCABC", "A", "!")'Wynik to: "!BC!BC!BC"MsgBox Replace("Lubię różowy, czerwony i czarny", "różowy", "fioletowy")Wynik: „Lubię fiolet, czerwień i czerń”MsgBox Replace("A, B, C, A, B, C, A, B, C", ", ", ",")Wynik: „ABCABCABC”MsgBox Replace("ABCABCABC", "ABC", "!")Wynik: „!!!”MsgBox Replace("ABCABCABC", "ABc", "!")Wynik: „ABCABCABC”MsgBox Replace("ABCABCABC", "ZBC", "!")Wynik: „ABCABCABC”Napis końcowy

VBA Zastąp pozycję początkową

Funkcja VBA Replace może służyć do zastępowania dowolnego znalezionego podciągu, w każdej znalezionej części. Jeśli przypiszemy pozycję początkową, wynikiem będzie część oryginalnego ciągu po tym punkcie początkowym.

12345678910111213 Sub ZamieńPrzykład_2()MsgBox Replace("ABCABCABC", "A", "123") 'Wynik: "123BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 2) 'Wynik: "BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 7) 'Wynik: "123BC"MsgBox Replace("ABCABCCABC", "A", "123", 8) 'Wynik: "BC"MsgBox Replace("ABCABCABC", "ABC", "!@") 'Wynik: "!@!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Wynik: "BC!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Wynik: "C!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Wynik: "!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Wynik: "BC"Napis końcowy

VBA Zastąp tylko kilka wystąpień

Funkcja VBA Replace może służyć do zastępowania dowolnego znalezionego podciągu, w każdej znalezionej części. Opcjonalnie możemy zdecydować, ile wystąpień należy zastąpić.

123456789101112 Sub ReplaceExample_3()MsgBox Replace("ABCABCABC", "A", "12") 'Wynik: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Wynik: "12BCABCABC"MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Wynik: "12BC12BCABC"MsgBox Replace("ABCABCABC", "A", "12", , 3) ​​'Wynik: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Wynik: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", 3, 1)Wynik to: „C12BCABC”„Zamieniliśmy A na 12, 1 raz, zaczynając od pozycji 3 oryginalnego ciągu.Napis końcowy

VBA Zamień wielkość liter

Funkcja zastępowania VBA domyślnie rozróżnia wielkość liter. Możesz zmienić to zachowanie, aby nie uwzględniać wielkości liter za pomocą opcjonalnego parametru (vbTextPorównaj). W takim przypadku należy również zdefiniować pozycję początkową wyszukiwania.

12345678910111213 Sub ReplaceExample_4()MsgBox Replace("ABcABCABc", "ABc", "12")Wynik to: „12ABC12”MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)Wynik to: „121212”'Kiedy używamy vbTextCompare, musimy dodać 2 inne opcjonalne argumenty:„zacznij i policz”MsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)Wynik: „cABC12ABc”„Zaczął od pozycji 3 i zastąpił ABC tylko 1 raz.Napis końcowy

Możesz również wykonać zamianę bez rozróżniania wielkości liter, dodając Option Compare Text na górze modułu:

1 Opcja Porównaj tekst

VBA Zastąp podwójne cytaty

Funkcja Zamień VBA może zastąpić znak podwójnego cudzysłowu używany do rozgraniczenia początku i końca ciągu.

Funkcja VBA Chr może zwrócić znak z jego numeru w zestawie znaków.

1 MsgBox Chr(34) 'Wynik to: "

Lub

1 MsgBox Chr(64) 'Wynik: @

Podwójne cudzysłowy mogą być używane w funkcji Zamień VBA za pomocą „””” lub funkcji VBA Chr(34).

12345678910111213 Sub ReplaceExample_5()Dim StrEx jako ciągStrEx = "AB""AB"""MsgBox StrEx 'Wynik to: AB"AB"MsgBox Replace(StrEx, Chr(34), "12")„Wynik to: AB12AB12”MsgBox Replace(StrEx, """", "DQ")Wynik: „ABDQABDQ”Napis końcowy

VBA Zastąp linię podziału w komórce

Funkcja zastępowania VBA może znaleźć znak specjalny linii podziału w komórce i usunąć go lub zastąpić znakiem spacji. Znak specjalny linii podziału można wprowadzić w komórce za pomocą skrótu klawiaturowego Alt+Enter i można go używać w kodzie VBA z numerem zestawu znaków za pomocą funkcji VBA Chr(10).

1234567891011121314 Sub ReplaceExample_6()Dim StrEx As String 'Zdefiniuj zmienną łańcuchową'Odczytaj wartość komórki A2 w arkuszu Arkusz1StrEx = ThisWorkbook.Worksheets("Arkusz1").Range("A2").Value'Znak linii przerwania wprowadzony za pomocą Alt+Enter to Chr(10) i jest niewidoczny.'Ta linia kodu zastępuje ten znak spacjąStrEx = Zamień(StrEx, Chr(10), " ")'Zapisz zastąpioną wartość w komórce B2 w arkuszu Arkusz1ThisWorkbook.Worksheets("Arkusz1").Range("B2").Value = StrExNapis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave