Ako naiđete na situaciju u kojoj trebate samo prvu riječ u svakom retku ćelije, a ne cijeli znak, morate pročitati ovaj članak. Sljedeći vodič će vam pomoći u dohvaćanju samo prve riječi kroz VBA kod u Excelu.
U ovom ćemo se članku usredotočiti na to kako zadržati prvu riječ samo u svakom retku ćelije odvojenom točkom -zarezom putem makro kodova.
Pitanje: Podaci u kojima radim ponekad imaju više redaka u svakoj ćeliji i želim izdvojiti samo prvu riječ.
Izvorno pitanje možete pronaći ovdje
Slijedi snimak unesenog teksta (prije lista)
Slijedi snimak ulaznog teksta (After Sheet) u stupcu A & zahtijeva izlaz u stupcu B; pogledajte donju snimku:
Da biste dobili kod; moramo pokrenuti donje korake za pokretanje VB uređivača
- Kliknite karticu Developer
- Iz grupe kodova odaberite Visual Basic
- Kopirajte donji kod u standardni modul
Funkcija 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 Zatim ReDim Arr (0 Za Brojanje) Za i = 0 Za Brojanje Ako je i = 0 Tada je Arr (i) = Lijevo (rng, InStr (1, rng, "")) - 1) OstaloAko j = 0 Tada je j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Ostalo 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 = Lijevo (rng, InStr (1, rng, "")) Ostalo FirstWordOnly = rng Kraj Ako kraj Ako funkcija kraj
Sada je VBA kôd spreman za upotrebu; koristit ćemo novostvorenu Korisnički definiranu funkciju, tj. "FirstWordOnly" u Prije lista.
- Za dobivanje rezultata pomoću UDF -a u ćeliji B2 formula će biti
- = Samo FirstWordOnly (A2)
Objašnjenje koda:
U gornjem kodu koristili smo funkcije COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
- ‘Len (rng)’; ovo će provjeriti duljinu ćelije na koju se pozivamo
- ‘Zamijeni (rng, Chr (10)," ") '; Kôd provjerava Chr (10), tj. Prijelom retka u svakom retku, a zatim zamjenjuje dvostrukim navodnicima (ništa)
- ‘Count = Len (rng) - Len (Zamijenite (rng, Chr (10)," ")) '; Count će pohraniti razliku duljine svakog retka nakon zamjene prijeloma retka
- Ako je Count> 0; ovo će provjeriti je li duljina Count veća od nule i ako se nađe jednaka nuli, tj. ćelija je prazna, tada uvjet IF neće izvršiti kôd. Da biste to provjerili, možete upotrijebiti = FirstWordOnly (A5) u ćeliji B5 i vratit će 0
- Ako ćelija nije prazna, tada će se petlja For koristiti s IF uvjetom, a s funkcijom LEFT dohvatit ćemo prvu riječ
- JOIN funkcija će dodati zarez na kraju ako postoji više redaka u svakoj ćeliji
Zaključak: Pomoću UDF -a možemo ukloniti sve u svakom retku ćelije osim prve riječi kroz VBA. Ova će funkcija raditi u svim verzijama od stare do nove, npr. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Ako vam se sviđaju naši blogovi, podijelite ih sa svojim prijateljima na Facebooku. Također nas možete pratiti na Twitteru i Facebooku.
Voljeli bismo čuti vaše mišljenje, javite nam kako možemo poboljšati, nadopuniti ili inovirati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte