Този урок ще покаже как да използвате функцията Replace VBA за замяна на низове текст.
Заменете функцията
Функцията VBA Replace връща низ с направени замествания. С използването на незадължителни параметри новият низ може да започне от позицията, определена от начало и завършва в края на оригиналния низ.
VBA Replace Заменете подниза
Функцията VBA Replace може да се използва за заместване на всяка намерена подниза във всяка част, която се намира.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Замяна ("ABCABCABC", "A", "!")'Резултатът е: "! BC! BC! BC"MsgBox Replace („Харесва ми розово, червено и черно“, „розово“, „лилаво“)„Резултатът е:„ Харесва ми лилаво, червено и черно “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 Replace може да се използва за заместване на всяка намерена подниза във всяка част, която се намира. Ако зададем начална позиция, резултатът ще бъде частта от оригиналния низ след тази начална точка.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Replace ("ABCABCABC", "A", "123") "Резултатът е:" 123BC123BC123BC "MsgBox Replace ("ABCABCABC", "A", "123", 2) "Резултатът е:" BC123BC123BC "MsgBox Replace ("ABCABCABC", "A", "123", 7) "Резултатът е:" 123BC "MsgBox Replace ("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 Replace може да се използва за заместване на всяка намерена подниза във всяка част, която се намира. По избор можем да решим колко събития трябва да бъдат заменени.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Replace ("ABCABCABC", "A", "12") "Резултатът е:" 12BC12BC12BC "MsgBox Replace ("ABCABCABC", "A", "12",, 1) 'Резултатът е: "12BCABCABC"MsgBox Replace ("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 Replace може да замени знака с двойни кавички, използван за разграничаване на началото и края на низ.
Функцията VBA Chr може да върне знак от неговия номер в набора от символи.
1 | MsgBox Chr (34) 'Резултатът е: " |
Или
1 | MsgBox Chr (64) 'Резултатът е: @ |
Двойни кавички могат да се използват във функцията VBA Replace с помощта на “” ”” или VBA функцията Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx As StringStrEx = "AB" "AB" ""Резултатът на MsgBox StrEx е: AB "AB"MsgBox Replace (StrEx, Chr (34), "12")„Резултатът е: AB12AB12MsgBox Замяна (StrEx, "" "", "DQ")'Резултатът е: "ABDQABDQ"End Sub |
VBA Replace Break Line в Cell
Функцията VBA Replace може да намери специален символ на прекъсната линия в клетка и да я премахне или замени с интервал. Специалният символ на прекъснатата линия може да бъде въведен в клетка с помощта на клавишната комбинация Alt+Enter и може да се използва във VBA код с номера на набор от символи, използвайки функцията VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Определете низова променлива„Прочетете стойността на клетка А2 в лист 1 на работен листStrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value„Символът на прекъснатата линия, въведен с Alt+Enter, е Chr (10) и е невидим.„Този код заменя този знак с интервалStrEx = Замяна (StrEx, Chr (10), "")„Запишете заменената стойност в клетка B2 в работен лист Sheet1ThisWorkbook.Worksheets ("Sheet1"). Range ("B2"). Value = StrExEnd Sub |