Če naletite na situacijo, v kateri potrebujete samo prvo besedo v vsaki vrstici celice in ne ves znak, morate prebrati ta članek. Naslednja vadnica vam bo pomagala pri pridobivanju samo prve besede skozi kodo VBA v Excelu.
V tem članku se bomo osredotočili na to, kako obdržati prvo besedo samo v vsaki vrstici celice, ločene s podpičjem prek makro kod.
Vprašanje: Podatki, v katerih delam, imajo včasih v vsaki celici več vrstic in želim izvleči samo prvo besedo.
Izvirno vprašanje najdete tukaj
Sledi posnetek vnesenega besedila (Pred listom)
Sledi posnetek vhodnega besedila (za listom) v stolpcu A & zahteva vnos v stolpec B; glej spodnji posnetek:
Za pridobitev kode; Za zagon urejevalnika VB moramo slediti spodnjim korakom
- Kliknite zavihek Razvijalec
- V skupini Koda izberite Visual Basic
- Kopirajte spodnjo kodo v 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 Potem ReDim Arr (0 Za štetje) Za i = 0 Za štetje Če je i = 0, potem je Arr (i) = levo (rng, InStr (1, rng, "")) - 1) Drugače, če j = 0 Potem je j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Drugače 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 Potem FirstWordOnly = Levo (rng, InStr (1, rng, "")) Sicer FirstWordOnly = rng End If End Če funkcija End
Zdaj je koda VBA pripravljena za uporabo; uporabili bomo novo ustvarjeno funkcijo, ki jo definira uporabnik, tj. "FirstWordOnly" v Pred listu.
- Če želite dobiti rezultat z uporabo UDF v celici B2, bo formula naslednja
- = Samo FirstWordOnly (A2)
Koda Pojasnilo:
V zgornji kodi smo uporabili funkcije COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
- „Len (rng)“; to bo preverilo dolžino celice, na katero se nanašamo
- „Zamenjaj (rng, Chr (10)," ")“; Koda preveri Chr (10), tj. Prelom vrstice v vsaki vrstici in se nato nadomesti z dvojnimi narekovaji (nič)
- ‘Count = Len (rng) - Len (Zamenjaj (rng, Chr (10)," ")) '; Count bo shranil razliko dolžine vsake vrstice po zamenjavi preloma vrstice
- Če je število> 0; to bo preverilo, če je dolžina Count večja od nič in če je enaka nič, tj. celica je prazna, pogoj IF ne izvede kode. Če želite to preveriti, lahko uporabite = FirstWordOnly (A5) v celici B5 in vrnilo bo 0
- Če celica ni prazna, bo zanka For uporabljena s pogojem IF, s funkcijo LEFT pa bomo pridobili prvo besedo
- Funkcija JOIN bo dodala podpičje na koncu, če je v vsaki celici več vrstic
Zaključek: Z uporabo UDF lahko odstranimo vse v vsaki vrstici celice, razen prve besede skozi VBA. Ta funkcija bo delovala v vseh različicah od stare do nove, npr. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Če so vam bili naši blogi všeč, jih delite s prijatelji na Facebooku. Prav tako nas lahko spremljate na Twitterju in Facebooku.
Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo, dopolnimo ali inoviramo svoje delo in ga izboljšamo. Pišite nam na spletni strani elektronske pošte