Jak získat první slovo v aplikaci Microsoft Excel

Anonim

Pokud narazíte na situaci, ve které požadujete pouze první slovo v každém řádku buňky, nikoli celý znak, pak si musíte přečíst tento článek. Následující tutoriál vám pomůže při načítání pouze prvního slova prostřednictvím kódu VBA v aplikaci Excel.

V tomto článku se zaměříme na to, jak ponechat první slovo pouze v každém řádku buňky oddělené středníkem pomocí kódů makra.

Otázka: Data, ve kterých pracuji, mají někdy více řádků v každé buňce a chci extrahovat pouze první slovo.

Původní otázku najdete zde

Následuje snímek vstupního textu (Před listem)

Následuje snímek vstupního textu (After Sheet) ve sloupci A & vyžaduje výstup ve sloupci B; viz níže snímek:

Chcete -li získat kód; pro spuštění VB editoru musíme postupovat podle níže uvedených kroků

  • Klikněte na kartu Vývojář
  • Ze skupiny kódů vyberte Visual Basic

  • Zkopírujte níže uvedený kód do standardního modulu
 Funkce FirstWordOnly (rng jako rozsah) Dim Arr () jako Variant Dim Count As Integer Dim i As Integer Count = Len (rng) - Len (Replace (rng, Chr (10), "")) If Count> 0 Then ReDim Arr (0 To Count) For i = 0 To Count If i = 0 Then Arr (i) = Left (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Then j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Jinak j = InStr (j + 1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) End If Next FirstWordOnly = Join (Arr, ";") Else If InStr (1, rng, "")> 0 Then FirstWordOnly = Vlevo (rng, InStr (1, rng, "")) Else FirstWordOnly = rng End If End If End Funkce 

Nyní je kód VBA připraven k použití; použijeme nově vytvořenou uživatelem definovanou funkci, tj. „FirstWordOnly“ v listu Před listem.

  • Chcete -li získat výstup pomocí UDF v buňce B2, bude vzorec
  • = FirstWordOnly (A2)

Vysvětlení kódu:

Ve výše uvedeném kódu jsme použili funkce COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.

  • „Len (rng)“; tím zkontrolujeme délku buňky, na kterou odkazujeme
  • ‘Nahradit (rng, Chr (10),„ “)‘; Kód zkontroluje Chr (10), tj. Konec řádku v každém řádku a poté nahradí dvojitou uvozovkou (nic)
  • ‘Count = Len (rng) - Len (Replace (rng, Chr (10)," "))"; Count nahradí rozdíl v délce každého řádku po nahrazení konce řádku
  • Pokud počet> 0; toto zkontroluje, zda je délka Count větší než nula a pokud je nalezena rovná nule, tj. buňka je prázdná, pak podmínka IF kód nespustí. Chcete -li to zkontrolovat, můžete použít = FirstWordOnly (A5) v buňce B5 a vrátí 0

  • Pokud buňka není prázdná, použije se smyčka For s podmínkou IF a s funkcí LEFT načteme první slovo
  • Pokud je v každé buňce více řádků, funkce JOIN přidá středník na konci

Závěr: Pomocí UDF můžeme odstranit vše v každém řádku buňky kromě prvního slova prostřednictvím VBA. Tato funkce bude fungovat ve všech verzích od starých po nové, tj. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mail