Nájsť a nahradiť Excel VBA

Už ste niekedy uvažovali o automatizácii funkcie Nájsť a nahradiť v Exceli. Vo VBA môžeme vytvoriť makro, ktoré sa dá použiť na nájdenie a nahradenie všetkého, čo bežne robíme v Exceli, stlačením klávesových skratiek Ctrl + H. Pomocou nástroja VBA Find and Replace môžeme automatizovať nájdenie ľubovoľného slova a nahradiť ho iným nahradením. Pomáha to, keď potrebujeme vykonať rovnakú činnosť viackrát.

Ako nájsť a nahradiť slová v Excel VBA?

Nižšie sú uvedené rôzne príklady na nájdenie a nahradenie slov vo formáte Excel pomocou kódu VBA.

Túto VBA verziu Nájsť a nahradiť Excel si môžete stiahnuť tu - VBA Nájsť a nahradiť Excel šablónu

Nájsť a nahradiť VBA - Príklad č. 1

Vo veľmi jednoduchom príklade máme dátovú množinu, ktorá sa skladá z nejakého mena. A niektoré mená sa opakujú, ako je uvedené nižšie.

Teraz vytvoríme kód, pomocou ktorého nájdeme akékoľvek mená, ktoré sa opakujú a nahradia niečím iným. Postupujte podľa nasledujúcich krokov.

Krok 1: Prejdite do ponuky Vložiť vo VBA a vyberte možnosť modulu, ako je to znázornené nižšie.

Krok 2: Keď to urobíme, otvoríme nový modul. V tomto module napíšte podkategóriu do názvu VBA Find and Replace alebo môžete zvoliť ľubovoľný názov tejto podkategórie.

kód:

 Sub Find_Replace1 () End Sub 

Krok 3: Pretože máme údaje v stĺpci B z bunky B2 do B10, vyberieme najprv tento rozsah z B2: B10.

kód:

 Sub Find_Replace1 () Range ("B2: B10"). Vymeňte End Sub 

Krok 4: Teraz, aby sme nahradili niečo, čo musíme hľadať toto slovo. Tu tiež najskôr vyberieme funkciu Nahradiť, aby sme sa pozreli na to, čo musíme nahradiť.

kód:

 Sub Find_Replace1 () Range ("B2: B10"). Vymeňte End Sub 

Podľa syntaxe funkcie Nahradiť nájdeme to, čo musíme nahradiť.

Krok 5: Ako meno, ktoré musíme nahradiť, vyberieme meno zo zoznamu „ Ben “.

kód:

 Sub Find_Replace1 () Range ("B2: B10"). Nahradiť čo: = "Ben" End Sub 

Krok 6: Teraz vyberte náhradné slovo, ktorým musíme nahradiť vybraté slovo. Tu sme sa rozhodli nahradiť meno Ben názvom Sam, ktoré je uvedené ako náhrada, ako je uvedené nižšie.

kód:

 Sub Find_Replace1 () Range ("B2: B10"). Nahradiť čo: = "Ben", Replacement: = "Sam" End Sub 

Krok 7: Teraz zostavte kód a spustite ho kliknutím na tlačidlo Prehrať alebo stlačením klávesu F5, ako je to znázornené nižšie.

Uvidíme, všetky bunky obsahujúce meno ako Ben sa teraz nahradia názvom Sam . A to je tiež zvýraznené žltou farbou.

Nájsť a nahradiť VBA - Príklad č. 2

Všetci sme mohli čeliť situácii, keď sme sa pokúsili nájsť a nahradiť niektoré slová malými a veľkými písmenami. Predpokladajme v zozname, ak chceme nahradiť iba slovo, ktoré obsahuje malé alebo veľké písmená. A ak použijeme postup, ktorý sme videli v príklade 1, nakoniec by sme nahradili všetky podobné slová v tomto zozname spolu s požadovaným. Tento proces nie je možné vykonať pomocou funkcie nájdenia a nahradenia (Ctrl + H) programu Excel. Na tento účel máme rezervu vo VBA.

Pozrime sa na to nižšie uvedené údaje. Ako vidíme, do bunky B2 sme zámerne pridali slovo BEN veľkými písmenami.

Podľa pokynov uvedených nižšie nájdite a nahraďte slovo BEN.

Krok 1: Spustite podkategóriu VBA Nájsť a nahradiť tam, ako je uvedené nižšie.

kód:

 Sub Find_Replace2 () End Sub 

Krok 2: Vyberte zoznam ako rozsah od B2 do B10.

kód:

 Sub Find_Replace2 () Range ("B2: B10") End Sub 

Krok 3: Teraz vyberte presné slovo, ktoré chceme nahradiť. Tu sme vybrali BEN, ktorý je v bunke B2.

kód:

 Sub Find_Replace2 () Range ("B2: B10"). Nahradiť Čo: = "BEN" End Sub 

Krok 4: Opäť sme vybrali rovnaké slovo, aké sme videli v príklade 1 ako náhradu BEN ako Sam .

kód:

 Sub Find_Replace2 () Range ("B2: B10"). Nahradiť Čo: = "BEN", Replacement: = "Sam" End Sub 

Krok 5: Teraz, keď chceme nahradiť presné slovo BEN, musíme použiť MatchCase, ak sa táto hodnota zmení na PRAVDA, ako je uvedené nižšie.

kód:

 Sub Find_Replace2 () Range ("B2: B10"). Nahradiť čo: = "BEN", Replacement: = "Sam", MatchCase: = True End Sub 

MatchCase nám pomôže pri identifikácii toho slova, ktoré chceme nahradiť presnou zhodou. V tomto prípade je slovo, ktoré sme vybrali, veľkým písmenom BEN a zoznam obsahuje aj podobné slová, ale v správnom prípade.

Krok 6: Teraz spustite kód kliknutím na tlačidlo Prehrať alebo stlačením klávesu F5.

Uvidíme, slovo BEN, ktoré bolo v bunke B2, je teraz nahradené slovom „ Sam “, zvýraznené žltou farbou. A podobné slová Ben, ktoré sa nachádzajú v bunkách B5 a B8, sú stále nezmenené.

Takto funguje presná zhoda.

Krok 7: Teraz z vyššie uvedeného kódu odstránime pridanú MatchCase a uvidíme, ako by to fungovalo.

kód:

 Sub Find_Replace2 () Range ("B2: B10"). Nahradiť čo: = "BEN", Replacement: = "Sam", MatchCase: = True End Sub 

Krok 8: Znova zostavte a spustite kód.

Uvidíme, že kód nahradil všetky bunky obsahujúce slovo Ben, ako je uvedené vyššie. Čo znamená, že po odstránení MatchCase bude kód fungovať tak, ako sme videli v príklade 1.

Výhody Excel VBA Nájsť a nahradiť

  • Hlavné učenie je, že slová a obsah citlivé na veľkosť písmen môžeme nahradiť pomocou nástroja VBA Nájsť a nahradiť, ako je uvedené v príklade 2.
  • Ak je aktivita manuálne a niekoľkokrát sa opakuje, automatizácia by bola výhodou pri šetrení času a úsilia.
  • Aj keď máme obrovskú množinu údajov, kde chceme nahradiť konkrétne slová, dá sa to urobiť bez toho, aby došlo k zrúteniu excelu v objemných súboroch.

Čo je potrebné pamätať

  • Môžeme vytvoriť makro funkcie Nájsť a nahradiť pomocou možnosti Záznam makra na karte Vývojár. Toto je najjednoduchší spôsob, ako vytvoriť makro, ak ste v kódovaní nováčikom.
  • Uloženie súboru vo formáte Macro Enable Excel umožňuje povoliť použitie kódu v budúcnosti.
  • Môžeme nahradiť akýkoľvek druh textu, slova, čísla alebo znaku pomocou VBA Find and Replace.

Odporúčané články

Toto je sprievodca vyhľadaním a nahradením VBA. Tu diskutujeme o tom, ako nájsť a nahradiť slová v Exceli pomocou VBA spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. VBA Break for Loop
  2. VYMENIŤ vzorec v Exceli
  3. Kompletný sprievodca VBA
  4. NÁJDITE funkciu v Exceli

Kategórie: