Dacă întâlniți o situație în care aveți nevoie doar de primul cuvânt în fiecare linie a unei celule, mai degrabă decât de tot caracterul, atunci trebuie să citiți acest articol. Următorul tutorial vă va ajuta să extrageți numai primul cuvânt prin cod VBA în Excel.
În acest articol, ne vom concentra asupra modului de a păstra primul cuvânt numai în fiecare linie a unei celule separate prin punct și virgulă prin coduri macro.
Întrebare: Datele în care lucrez au uneori mai multe linii în fiecare dintre celule și vreau să extrag numai primul cuvânt.
Puteți găsi întrebarea originală aici
Următorul este un instantaneu al textului introdus (Înainte de foaie)
Următorul este un instantaneu al textului de intrare (După foaie) în coloana A & necesită ieșire în coloana B; consultați mai jos instantaneu:
Pentru a obține codul; trebuie să urmăm pașii de mai jos pentru a lansa editorul VB
- Faceți clic pe fila Dezvoltator
- Din grupul de coduri, selectați Visual Basic
- Copiați codul de mai jos în modulul standard
Funcția FirstWordOnly (rng Ca Range) Dim Arr () Ca Variant Dim Count Ca Integer Dim i As Integer Count = Len (rng) - Len (Replace (rng, Chr (10), "")) If Count> 0 Then ReDim Arr (0 To Count) Pentru i = 0 To Count Dacă i = 0 Apoi Arr (i) = Stânga (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Atunci j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Altele 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 = Stânga (rng, InStr (1, rng, "")) Altfel FirstWordOnly = rng End If End If End Function
Acum, codul VBA este gata de utilizare; vom folosi noua funcție definită de utilizator, adică „FirstWordOnly” în Before Sheet.
- Pentru a obține ieșirea utilizând UDF în celula B2, formula va fi
- = FirstWordOnly (A2)
Explicatie cod:
În codul de mai sus, am folosit funcțiile COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
- ‘Len (rng)’; aceasta va verifica lungimea celulei la care ne referim
- ‘Înlocuiți (rng, Chr (10),„ ”)’; Codul verifică Chr (10), adică întrerupere de linie în fiecare linie și apoi înlocuiește cu ghilimele duble (nimic)
- ‘Count = Len (rng) - Len (Înlocuiți (rng, Chr (10)," ")) '; Numărul va stoca diferența de lungime a fiecărei linii după înlocuirea pauzei de linie
- Dacă Număr> 0; aceasta va verifica dacă lungimea numărului este mai mare decât zero și dacă este găsită egală cu zero, adică celula este goală, atunci condiția IF nu va executa codul. Pentru a verifica acest lucru, puteți utiliza = FirstWordOnly (A5) în celula B5 și va returna 0
- Dacă celula nu este goală, atunci bucla For va fi utilizată cu condiția IF și, cu funcția STÂNGA, vom prelua primul cuvânt
- Funcția JOIN va adăuga punct și virgulă la sfârșit dacă există mai multe linii în fiecare celulă
Concluzie: Folosind UDF putem elimina totul din fiecare linie de celulă, cu excepția primului cuvânt prin VBA. Această funcție va funcționa în toate versiunile de la vechi la nou, adică Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail