Sådan får du det første ord i Microsoft Excel

Anonim

Hvis du støder på en situation, hvor du kun kræver det første ord på hver linje i en celle i stedet for alt tegnet, skal du læse denne artikel. Den følgende vejledning hjælper dig med kun at hente det første ord gennem VBA -kode i excel.

I denne artikel vil vi fokusere på, hvordan man kun beholder det første ord i hver linje i en celle adskilt af semikolon via makrokoder.

Spørgsmål: De data, jeg arbejder i, har nogle gange flere linjer i hver af cellen, og jeg vil kun udtrække det første ord.

Du kan finde det originale spørgsmål her

Følgende er et øjebliksbillede af inputtekst (før ark)

Følgende er et øjebliksbillede af inputtekst (efter ark) i kolonne A & kræver output i kolonne B; se nedenstående snapshot:

For at få koden; vi skal følge nedenstående trin for at starte VB -editor

  • Klik på fanen Udvikler
  • Vælg Visual Basic i kodegruppen

  • Kopier nedenstående kode i standardmodulet
 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 at tælle) For i = 0 at tælle Hvis i = 0 derefter Arr (i) = Venstre (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Så j = InStr (1, rng, Chr (10)) Arr (i) = Midt (rng, j + 1, InStr (j, rng, "") - j) Ellers 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 = Venstre (rng, InStr (1, rng, "")) Else FirstWordOnly = rng Slut hvis slut hvis slutfunktion 

Nu er VBA -koden klar til brug; vi vil bruge den nyoprettede brugerdefinerede funktion, dvs. "FirstWordOnly" i Før ark.

  • For at få output ved hjælp af UDF i celle B2 vil formlen være
  • = FirstWordOnly (A2)

Kode Forklaring:

I ovenstående kode har vi brugt COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA funktioner.

  • ‘Len (rng)’; dette vil kontrollere længden af ​​cellen, som vi henviser til
  • ‘Erstat (rng, Chr (10)," ") '; Koden kontrollerer Chr (10) dvs. linjeskift i hver linje og erstatter derefter med dobbelt citat (ingenting)
  • ‘Count = Len (rng) - Len (Replace (rng, Chr (10)," ")) '; Count vil gemme forskellen i længden af ​​hver linje efter udskiftning af linjeskiftet
  • Hvis tælling> 0; dette vil kontrollere, om tællingens længde er større end nul, og hvis den findes lig med nul, dvs. cellen er tom, vil IF -betingelsen ikke udføre koden. For at kontrollere dette kan du bruge = FirstWordOnly (A5) i celle B5, og det returnerer 0

  • Hvis cellen ikke er tom, bruges For loop til IF -tilstand, og med VENSTRE -funktionen henter vi det første ord
  • JOIN -funktion tilføjer semikolon i slutningen, hvis der er flere linjer i hver celle

Konklusion: Ved hjælp af UDF kan vi fjerne alt i hver cellelinje undtagen første ord gennem VBA. Denne funktion fungerer i alle versioner fra gammel til ny, dvs. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Hvis du kunne lide vores blogs, kan du dele den med dine venner på Facebook. Og også du kan følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre, supplere eller innovere vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet