Tento tutoriál ukáže, ako použiť funkciu Nahradiť VBA na nahradenie reťazcov textu.
Nahradiť funkciu
Funkcia Nahradiť VBA vráti reťazec s vykonanými substitúciami. S použitím voliteľných parametrov môže nový reťazec začínať na pozícii určenej začiatkom a končí na konci pôvodného reťazca.
VBA Nahradiť náhrada za podreťazec
Funkciu VBA Nahradiť je možné použiť ako náhradu za akýkoľvek nájdený podreťazec v každej jeho časti.
12345678910111213141516 | Sub ReplaceExample_1 ()Nahradiť MsgBox („ABCABCABC“, „A“, „!“)Výsledok je: „! BC! BC! BC! BC“MsgBox Replace („Mám rád ružovú, červenú a čiernu“, „ružovú“, „fialovú“)Výsledok je: „Mám rád fialovú, červenú a čiernu“Nahradiť MsgBox („A, B, C, A, B, C, A, B, C“, „,“, „,“)Výsledok je: „ABCABCABC“Nahradiť MsgBox („ABCABCABC“, „ABC“, „!“)Výsledok je: "!!!"Nahradiť MsgBox („ABCABCABC“, „ABc“, „!“)„Výsledok je:„ ABCABCABC “Nahradiť MsgBox („ABCABCABC“, „ZBC“, „!“)„Výsledok je:„ ABCABCABC “Koniec pod |
VBA Vymeňte východiskovú pozíciu
Funkciu VBA Nahradiť je možné použiť ako náhradu za akýkoľvek nájdený podreťazec v každej jeho časti. Ak priradíme počiatočnú pozíciu, potom bude výsledkom časť pôvodného reťazca za týmto počiatočným bodom.
12345678910111213 | Sub ReplaceExample_2 ()Nahradiť MsgBox („ABCABCABC“, „A“, „123“) 'Výsledok je: „123BC123BC123BC“Nahradiť MsgBox („ABCABCABC“, „A“, „123“, 2) 'Výsledok je: „BC123BC123BC“Nahradiť MsgBox („ABCABCABC“, „A“, „123“, 7) Výsledok je: „123BC“Nahradiť MsgBox („ABCABCABC“, „A“, „123“, 8) Výsledok je: „BC“Nahradiť MsgBox („ABCABCABC“, „ABC“, „!@“) „Výsledok je:“!@!@!@“Nahradiť MsgBox („ABCABCABC“, „ABC“, „!@“, 2) Výsledok je: „BC!@!@“Nahradiť MsgBox („ABCABCABC“, „ABC“, „!@“, 6) 'Výsledok je: „C!@“Nahradiť MsgBox („ABCABCABC“, „ABC“, „!@“, 7) Výsledok je: „!@“MsgBox Replace („ABCABCABC“, „ABC“, „!@“, 8) 'Výsledok je: „BC“Koniec pod |
VBA Nahradiť iba niekoľko výskytov
Funkciu VBA Nahradiť je možné použiť ako náhradu za akýkoľvek nájdený podreťazec v každej jeho časti. Voliteľne môžeme rozhodnúť, koľko výskytov by malo byť nahradených.
123456789101112 | Sub ReplaceExample_3 ()Nahradiť MsgBox („ABCABCABC“, „A“, „12“) 'Výsledok je: „12BC12BC12BC“Nahradiť MsgBox („ABCABCABC“, „A“, „12“,, 1) 'Výsledok je: „12BCABCABC“MsgBox Replace („ABCABCABC“, „A“, „12“,, 2) 'Výsledok je: „12BC12BCABC“MsgBox Replace („ABCABCABC“, „A“, „12“,, 3) 'Výsledok je: „12BC12BC12BC“MsgBox Replace („ABCABCABC“, „A“, „12“,, 5) 'Výsledok je: „12BC12BC12BC“Nahradiť MsgBox („ABCABCABC“, „A“, „12“, 3, 1)„Výsledok je:„ C12BCABC “„Nahradili sme A 12 -krát, začínajúc od pozície 3 pôvodného reťazca.Koniec pod |
VBA Nahraďte citlivosť písmen
Funkcia nahradenia VBA štandardne rozlišuje veľké a malé písmena. Toto správanie môžete zmeniť na rozlišovanie malých a veľkých písmen pomocou voliteľného parametra (vbTextCompare). V takom prípade musíte definovať aj počiatočnú pozíciu vyhľadávania.
12345678910111213 | Sub ReplaceExample_4 ()Nahradiť MsgBox („ABcABCABc“, „ABc“, „12“)Výsledok je: „12ABC12“Nahradiť MsgBox („ABcABCABc“, „ABc“, „12“,,, vbTextCompare)Výsledok je: „121212“„Keď používame vbTextCompare, musíme pridať ďalšie 2 voliteľné argumenty:„začni a počítajNahradiť MsgBox („ABcABCABcABc“, „ABc“, „12“, 3, 1)„Výsledok je:„ cABC12ABc “„Začalo sa z polohy 3 a nahradil sa ABC iba 1 -krát.Koniec pod |
Nahradenie bez rozlišovania malých a veľkých písmen môžete vykonať aj pridaním textu na porovnanie možností do hornej časti modulu:
1 | Možnosť Porovnať text |
VBA Nahradiť dvojité úvodzovky
Funkcia VBA Nahradiť môže nahradiť znak v úvodzovkách používaný na ohraničenie začiatku a konca reťazca.
Funkcia VBA Chr môže vrátiť znak z jeho čísla v znakovej sade.
1 | MsgBox Chr (34) 'Výsledok je: " |
Alebo
1 | MsgBox Chr (64) 'Výsledok je: @ |
Dvojité úvodzovky je možné použiť vo funkcii nahradenia VBA pomocou „“ “” alebo funkcie VBA Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx ako reťazecStrEx = "AB" "AB" ""Výsledok MsgBox StrEx je: AB „AB“MsgBox Replace (StrEx, Chr (34), "12")„Výsledok je: AB12AB12Nahradiť MsgBox (StrEx, "" "", "DQ")Výsledok je: „ABDQABDQ“Koniec pod |
VBA Nahraďte prerušovací riadok v bunke
Funkcia VBA Nahradiť dokáže v bunke nájsť špeciálny znak prerušovacej čiary a odstrániť ju alebo nahradiť medzerou. Špeciálny znak prerušovacej čiary je možné zadať do bunky pomocou klávesovej skratky Alt+Enter a je možné ho použiť v kóde VBA s číslom znakovej sady pomocou funkcie VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definujte premennú reťazca„Prečítajte si hodnotu bunky A2 v pracovnom hárku List1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value„Znak prerušovanej čiary zadaný pomocou klávesov Alt+Enter je Chr (10) a je neviditeľný.„Tento riadok kódu nahradí tento znak medzerouStrEx = Nahradiť (StrEx, Chr (10), "")„Nahradenú hodnotu napíšte do bunky B2 do pracovného hárka List1ThisWorkbook.Worksheets ("Sheet1"). Range ("B2"). Value = StrExKoniec pod |