Ja jūs saskaraties ar situāciju, kad katrā šūnas rindā ir nepieciešams tikai pirmais vārds, nevis visa rakstzīme, tad jums ir jāizlasa šis raksts. Šī apmācība palīdzēs jums iegūt tikai pirmo vārdu, izmantojot Excel VBA kodu.
Šajā rakstā mēs pievērsīsimies tam, kā saglabāt pirmo vārdu tikai katrā šūnas rindā, kas atdalīta ar semikolu, izmantojot makro kodus.
Jautājums: Datiem, ar kuriem strādāju, dažkārt katrā šūnā ir vairākas rindas, un es vēlos iegūt tikai pirmo vārdu.
Oriģinālo jautājumu varat atrast šeit
Tālāk ir ievades teksta momentuzņēmums (pirms lapas)
Tālāk ir ievades teksta momentuzņēmums (pēc lapas) A slejā & nepieciešama izvade kolonnā B; skatiet zemāk momentuzņēmumu:
Lai iegūtu kodu; mums ir jāveic šādas darbības, lai palaistu VB redaktoru
- Noklikšķiniet uz cilnes Izstrādātājs
- Kodu grupā atlasiet Visual Basic
- Nokopējiet zemāk esošo kodu standarta modulī
Funkcija FirstWordOnly (rng kā diapazons) Dim Arr () Kā variants Dim skaitīt kā vesels skaitlis Dim i Kā vesels skaitlis = Len (rng) - Len (Aizstāt (rng, Chr (10), "")) Ja skaits> 0, tad ReDim Arr (0 skaitīt) i = 0 skaitīt, ja i = 0, tad Arr (i) = pa kreisi (rng, InStr (1, rng, "") - 1) citādi j = 0, tad j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Citādi j = InStr (j + 1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) End If Next FirstWordOnly = Pievienoties (Arr, ";") Citādi Ja InStr (1, rng, "")> 0 Tad FirstWordOnly = Pa kreisi (rng, InStr (1, rng, "")) Else FirstWordOnly = rng Beigas Ja beigas Ja Beigu funkcija
Tagad VBA kods ir gatavs lietošanai; mēs izmantosim jaunizveidoto lietotāja definēto funkciju, ti, “FirstWordOnly” pirms lapas.
- Lai iegūtu rezultātu, izmantojot UDF šūnā B2, formula būs
- = FirstWordOnly (A2)
Koda skaidrojums:
Iepriekš minētajā kodā mēs esam izmantojuši funkcijas COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
- ‘Len (rng)’; tas pārbaudīs šūnas garumu, uz kuru mēs atsaucamies
- ‘Aizstāt (rng, Chr (10),“ ”)’; Kods pārbauda Chr (10), t.i., rindas pārtraukumu katrā rindā, un pēc tam aizstāj ar pēdiņu (nekas)
- ‘Skaits = Len (rng) - Len (Aizstāt (rng, Chr (10)," "))’; Count pēc rindas pārtraukuma nomaiņas saglabās katras rindas garuma starpību
- Ja skaits> 0; tas pārbaudīs, vai skaitīšanas garums ir lielāks par nulli un vai tas ir vienāds ar nulli, ti, šūna ir tukša, tad IF nosacījums kodu neizpildīs. Lai to pārbaudītu, šūnā B5 varat izmantot = FirstWordOnly (A5), un tas atgriezīs 0
- Ja šūna nav tukša, tad cilpa For tiks izmantota ar IF nosacījumu, un ar funkciju LEFT mēs iegūsim pirmo vārdu
- Funkcijas JOIN beigās tiks pievienots semikols, ja katrā šūnā ir vairākas līnijas
Secinājums: Izmantojot UDF, mēs varam noņemt visu katrā šūnu rindā, izņemot pirmo vārdu, izmantojot VBA. Šī funkcija darbosies visās versijās no vecās līdz jaunajai, ti, Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Ja jums patika mūsu emuāri, kopīgojiet to ar saviem draugiem Facebook. Un arī jūs varat sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot, papildināt vai ieviest jauninājumus mūsu darbā un uzlabot to jūsu labā. Rakstiet mums e -pasta vietnē