Hoe het eerste woord in Microsoft Excel te krijgen

Anonim

Als u een situatie tegenkomt waarin u alleen het eerste woord in elke regel van een cel nodig heeft in plaats van alle tekens, dan moet u dit artikel lezen. De volgende zelfstudie helpt u bij het ophalen van alleen het eerste woord via VBA-code in Excel.

In dit artikel zullen we ons concentreren op het behouden van het eerste woord in elke regel van een cel, gescheiden door puntkomma's via macrocodes.

Vraag: De gegevens waarin ik werk, hebben soms meerdere regels in elk van de cellen en ik wil alleen het eerste woord extraheren.

Je kunt de originele vraag hier vinden

Hieronder volgt een momentopname van invoertekst (voor blad)

Hieronder volgt een momentopname van invoertekst (na blad) in kolom A en vereist uitvoer in kolom B; zie onderstaande momentopname:

Om de code te krijgen; we moeten de onderstaande stappen volgen om VB-editor te starten

  • Klik op het tabblad Ontwikkelaar
  • Selecteer in de codegroep Visual Basic

  • Kopieer onderstaande code in de standaard module
 Functie FirstWordOnly(rng As Range) Dim Arr() As Variant Dim Count As Integer Dim i As Integer Count = Len(rng) - Len(Replace(rng, Chr(10), "")) If Count > 0 Then ReDim Arr (0 Tellen) Voor i = 0 Tellen Als i = 0 Dan Arr(i) = Links(rng, InStr(1, rng, " ") - 1) ElseIf j = 0 Dan j = InStr(1, rng, Chr(10)) Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j) Anders 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 = Left(rng, InStr(1, rng, " ")) Else FirstWordOnly = rng End If End If End Functie 

Nu is de VBA-code klaar voor gebruik; we zullen de nieuw gemaakte door de gebruiker gedefinieerde functie gebruiken, d.w.z. "FirstWordOnly" in Before Sheet.

  • Om de uitvoer te krijgen met UDF in cel B2 is de formule:
  • =AlleenEersteWoord(A2)

Code Verklaring:

In de bovenstaande code hebben we de functies COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA gebruikt.

  • ‘Len(rng)’; dit zal de lengte van de cel controleren waarnaar we verwijzen
  • ‘Vervang(rng, Chr(10), "")'; De code controleert de Chr (10), d.w.z. regeleinde in elke regel en vervangt vervolgens door dubbele aanhalingstekens (niets)
  • 'Aantal = Len(rng) - Len(Vervang(rng, Chr(10), ""))'; Count slaat het verschil in lengte van elke regel op na het vervangen van de regeleinde
  • Als Aantal > 0; dit zal controleren of de lengte van Count groter is dan nul en als deze gelijk is aan nul, d.w.z. de cel is leeg, dan zal de IF-voorwaarde de code niet uitvoeren. Om dit te controleren, kunt u =FirstWordOnly(A5) gebruiken in cel B5 en het zal 0 . retourneren

  • Als de cel niet leeg is, wordt de For-lus gebruikt met de ALS-voorwaarde en met de LEFT-functie halen we het eerste woord op
  • De JOIN-functie voegt een puntkomma toe aan het einde als er meerdere regels in elke cel zijn

Conclusie: Met UDF kunnen we alles in elke celregel verwijderen, behalve het eerste woord via VBA. Deze functie werkt in alle versies van oud naar nieuw, d.w.z. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Als je onze blogs leuk vond, deel deze dan met je vrienden op Facebook. En je kunt ons ook volgen op Twitter en Facebook.
We horen graag van je, laat ons weten hoe we ons werk kunnen verbeteren, aanvullen of vernieuwen en het voor jou beter kunnen maken. Schrijf ons op de e-mailsite