Hur man får det första ordet i Microsoft Excel

Anonim

Om du stöter på en situation där du bara behöver det första ordet på varje rad i en cell snarare än hela tecknet, måste du läsa den här artikeln. Följande handledning hjälper dig att bara hämta första ordet via VBA -kod i excel.

I den här artikeln kommer vi att fokusera på hur man bara behåller det första ordet i varje rad i en cell separerad med semikolon via makrokoder.

Fråga: Data jag arbetar i har ibland flera rader i var och en av cellen och jag vill bara extrahera det första ordet.

Du hittar den ursprungliga frågan här

Följande är en ögonblicksbild av inmatningstext (före blad)

Följande är en ögonblicksbild av inmatningstext (efter blad) i kolumn A & kräver utmatning i kolumn B; se ögonblicksbild nedan:

För att få koden; vi måste följa stegen nedan för att starta VB -editor

  • Klicka på fliken Utvecklare
  • Välj Visual Basic i kodgruppen

  • Kopiera koden nedan i standardmodulen
 Funktion FirstWordOnly (rng As Range) Dim Arr () Som variant Dim Count As Integer Dim i As Integer Count = Len (rng) - Len (Replace (rng, Chr (10), "")) If Count> 0 Then ReDim Arr (0 Att räkna) För i = 0 Att räkna Om i = 0 Sedan Arr (i) = Vänster (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Då j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Else 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 = Vänster (rng, InStr (1, rng, "")) Else FirstWordOnly = rng End If End If End -funktion 

Nu är VBA -koden klar att användas; vi kommer att använda den nyskapade användardefinierade funktionen, dvs "FirstWordOnly" i Before Sheet.

  • För att få utmatningen med UDF i cell B2 kommer formeln att vara
  • = FirstWordOnly (A2)

Kodförklaring:

I koden ovan har vi använt funktionerna RÄKTA, LENA, ERSÄTTA, OM, INSTR, MID, CHR, VÄNSTER, JOIN VBA.

  • ‘Len (rng)’; detta kommer att kontrollera längden på cellen som vi syftar på
  • ‘Ersätt (rng, Chr (10)," ") '; Koden kontrollerar Chr (10) dvs radbrytning i varje rad och ersätter sedan med dubbel citat (ingenting)
  • ‘Count = Len (rng) - Len (Replace (rng, Chr (10)," ")) '; Count kommer att lagra längdskillnaden för varje rad efter att radbrytningen har ersatts
  • Om räkningen> 0; detta kommer att kontrollera om räkningslängden är större än noll och om den hittas lika med noll, dvs cellen är tom, kommer IF -villkoret inte att köra koden. För att kontrollera detta kan du använda = FirstWordOnly (A5) i cell B5 och det kommer att returnera 0

  • Om cellen inte är tom kommer For loop att användas med IF -tillstånd och med VÄNSTER -funktionen hämtar vi det första ordet
  • JOIN -funktion lägger till semikolon i slutet om det finns flera rader i varje cell

Slutsats: Med UDF kan vi ta bort allt i varje cellrad utom det första ordet via VBA. Denna funktion fungerar i alla versioner från gammalt till nytt, dvs Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen