Acest tutorial va arăta cum să utilizați funcția Înlocuiți VBA pentru a înlocui șiruri de text.
Înlocuiți funcția
Funcția VBA Replace returnează un șir, cu înlocuiri făcute. Cu ajutorul parametrilor opționali, noul șir poate începe de la poziția specificată de început și se termină la sfârșitul șirului original.
Înlocuiți VBA Înlocuiți un șir
Funcția VBA Replace poate fi utilizată pentru a înlocui orice șir de caractere găsit, în fiecare parte a acestuia.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Replace („ABCABCABC”, „A”, „!”)„Rezultatul este:„! Î.Hr.!MsgBox Înlocuiți („Îmi plac roz, roșu și negru”, „roz”, „violet”)„Rezultatul este:„ Îmi plac violet, roșu și negru ”MsgBox Înlocuiți ("A, B, C, A, B, C, A, B, C", ",", ",")„Rezultatul este:„ ABCABCABC ”MsgBox Replace („ABCABCABC”, „ABC”, „!”)„Rezultatul este:„ !!! ”MsgBox Replace („ABCABCABC”, „ABc”, „!”)„Rezultatul este:„ ABCABCABC ”MsgBox Replace („ABCABCABC”, „ZBC”, „!”)„Rezultatul este:„ ABCABCABC ”Sfârșitul Sub |
VBA Înlocuiți poziția de pornire
Funcția VBA Replace poate fi utilizată pentru a înlocui orice șir de caractere găsit, în fiecare parte a acestuia. Dacă atribuim o poziție de început, atunci rezultatul ar fi partea șirului original după acel punct de plecare.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Replace ("ABCABCABC", "A", "123") 'Rezultatul este: "123BC123BC123BC"MsgBox Replace („ABCABCABC”, „A”, „123”, 2) 'Rezultatul este: „BC123BC123BC”MsgBox Replace („ABCABCABC”, „A”, „123”, 7) „Rezultatul este:„ 123BC ”MsgBox Replace („ABCABCABC”, „A”, „123”, 8) „Rezultatul este:„ BC ”MsgBox Replace ("ABCABCABC", "ABC", "! @") 'Rezultatul este: "! @! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 2) 'Rezultatul este: "BC! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 6) 'Rezultatul este: "C! @"MsgBox Replace („ABCABCABC”, „ABC”, „! @”, 7) „Rezultatul este:„! @ ”MsgBox Replace („ABCABCABC”, „ABC”, „! @”, 8) „Rezultatul este:„ BC ”Sfârșitul Sub |
VBA Înlocuiește doar câteva apariții
Funcția VBA Replace poate fi utilizată pentru a înlocui orice șir de caractere găsit, în fiecare parte a acestuia. Opțional, putem decide câte apariții trebuie înlocuite.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Replace ("ABCABCABC", "A", "12") 'Rezultatul este: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12",, 1) 'Rezultatul este: "12BCABCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 2) 'Rezultatul este: "12BC12BCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 3) 'Rezultatul este: "12BC12BC12BC"MsgBox Replace („ABCABCABC”, „A”, „12”,, 5) „Rezultatul este:„ 12BC12BC12BC ”MsgBox Replace („ABCABCABC”, „A”, „12”, 3, 1)„Rezultatul este:„ C12BCABC ”„Am înlocuit A cu 12, 1 dată începând de la poziția 3 a șirului original.Sfârșitul Sub |
VBA Înlocuiește sensibilitatea la majuscule
Funcția VBA Replace Function este în mod implicit diferențiată de majuscule și minuscule. Puteți schimba acel comportament pentru a nu face sensibilitate la majuscule și minuscule folosind un parametru opțional (vbTextCompare). În acest caz, trebuie să definiți și poziția inițială a căutării.
12345678910111213 | Sub ReplaceExample_4 ()MsgBox Replace („ABcABCABc”, „ABc”, „12”)'Rezultatul este: "12ABC12"MsgBox Replace ("ABcABCABc", "ABc", "12",,, vbTextCompare)'Rezultatul este: "121212"„Când folosim vbTextCompare, trebuie să adăugăm celelalte 2 argumente opționale:'începe și numărăMsgBox Replace („ABcABCABcABc”, „ABc”, „12”, 3, 1)'Rezultatul este: "cABC12ABc"„A început de la poziția 3 și a înlocuit ABC o singură dată.Sfârșitul Sub |
De asemenea, puteți efectua o înlocuire care nu face sensibilitatea la majuscule și minuscule, adăugând opțiunea Comparare text în partea de sus a modulului:
1 | Opțiune Comparați textul |
VBA Înlocuiți cotațiile duble
Funcția VBA Replace poate înlocui caracterul ghilimele dublu folosit pentru a delimita începutul și sfârșitul unui șir.
Funcția VBA Chr poate returna un caracter din numărul său din setul de caractere.
1 | MsgBox Chr (34) 'Rezultatul este: " |
Sau
1 | MsgBox Chr (64) „Rezultatul este: @ |
Ghilimelele duble pot fi utilizate în funcția VBA Replace folosind funcția „” ”” sau funcția VBA Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx Ca șirStrEx = "AB" "AB" ""Rezultatul MsgBox StrEx este: AB "AB"Înlocuire MsgBox (StrEx, Chr (34), "12")'Rezultatul este: AB12AB12MsgBox Replace (StrEx, "" "", "DQ")„Rezultatul este:„ ABDQABDQ ”Sfârșitul Sub |
VBA Înlocuiți linia de rupere în celulă
Funcția VBA Replace poate găsi caracterul special al liniei de întrerupere într-o celulă și îl poate elimina sau înlocui cu un caracter spațial. Caracterul special al liniei de întrerupere poate fi introdus într-o celulă utilizând comanda rapidă de la tastatură Alt + Enter și poate fi utilizat în codul VBA cu numărul său de seturi de caractere utilizând funcția VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definiți o variabilă de șir„Citiți valoarea celulei A2 din foaia de lucru Sheet1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value„Caracterul liniei de întrerupere introdus cu Alt + Enter este Chr (10) și este invizibil.„Această linie de cod înlocuiește acel caracter cu spațiuStrEx = Înlocuiți (StrEx, Chr (10), "")'Scrieți valoarea înlocuită în celula B2 în foaia de lucru Sheet1ThisWorkbook.Worksheets ("Sheet1"). Range ("B2"). Value = StrExSfârșitul Sub |