Како добити прву реч у програму Мицрософт Екцел

Anonim

Ако наиђете на ситуацију у којој вам је потребна само прва реч у сваком реду ћелије, а не читав знак, морате прочитати овај чланак. Следећи водич ће вам помоћи у преузимању само прве речи кроз ВБА код у Екцелу.

У овом чланку ћемо се фокусирати на то како задржати прву реч само у сваком реду ћелије одвојене тачком и зарезом преко макро кодова.

Питање: Подаци у којима радим понекад имају више редова у свакој ћелији и желим да издвојим само прву реч.

Оригинално питање можете пронаћи овде

Слиједи снимак унесеног текста (прије листа)

Следи снимак улазног текста (Афтер Схеет) у колони А & захтева излаз у колони Б; погледајте доњи снимак:

Да бисте добили код; морамо да следимо кораке у наставку да бисмо покренули ВБ едитор

  • Кликните на картицу Девелопер
  • Из групе кодова изаберите Висуал Басиц

  • Копирајте доњи код у стандардни модул
 Функција ФирстВордОнли (рнг Ас Ранге) Дим Арр () Ас Вариант Дим Цоунт Ас Интегер Дим и Ас Интегер Цоунт = Лен (рнг) - Лен (Реплаце (рнг, Цхр (10), "")) Иф Цоунт> 0 Затим РеДим Арр (0 За пребројавање) За и = 0 За бројање Ако је и = 0 Тада је Арр (и) = Лево (рнг, ИнСтр (1, рнг, "")) - 1) ОсталоИф ј = 0 Тада је ј = ИнСтр (1, рнг, Цхр (10)) Арр (и) = Мид (рнг, ј + 1, ИнСтр (ј, рнг, "") - ј) Иначе ј = ИнСтр (ј + 1, рнг, Цхр (10)) Арр (и) = Мид (рнг, ј + 1, ИнСтр (ј, рнг, "") - ј) Енд Иф Нект ФирстВордОнли = Јоин (Арр, ";") Елсе Иф ИнСтр (1, рнг, "")> 0 Тхен ФирстВордОнли = Лево (рнг, ИнСтр (1, рнг, "")) Елсе ФирстВордОнли = рнг Енд Иф Енд Ако функција Енд 

Сада је ВБА код спреман за употребу; користићемо новостворену Кориснички дефинисану функцију, тј. "ФирстВордОнли" у Пре Схеет -у.

  • Да бисте добили излаз помоћу УДФ -а у ћелији Б2 формула ће бити
  • = ФирстВордОнли (А2)

Објашњење кода:

У горњем коду користили смо функције ЦОУНТ, ЛЕН, РЕПЛАЦЕ, ИФ, ИНСТР, МИД, ЦХР, ЛЕФТ, ЈОИН ВБА.

  • „Лен (рнг)“; ово ће проверити дужину ћелије на коју се позивамо
  • „Замени (рнг, Цхр (10)," ") '; Код проверава Цхр (10), односно прелом реда у сваком реду, а затим се замењује двоструким наводницима (ништа)
  • ‘Цоунт = Лен (рнг) - Лен (Замени (рнг, Цхр (10)," ")) '; Цоунт ће сачувати разлику у дужини сваког реда након замене прелома
  • Ако је Цоунт> 0; ово ће проверити да ли је дужина броја већа од нуле и ако се нађе једнака нули, тј. ћелија је празна, тада услов ИФ неће извршити код. Да бисте ово проверили, можете користити = ФирстВордОнли (А5) у ћелији Б5 и вратиће 0

  • Ако ћелија није празна, тада ће се петља Фор користити са ИФ условом, а са функцијом ЛЕФТ ћемо дохватити прву реч
  • ЈОИН функција ће додати тачку -зарез на крају ако има више редова у свакој ћелији

Закључак: Користећи УДФ можемо уклонити све у сваком реду ћелије осим прве речи кроз ВБА. Ова функција ће радити у свим верзијама, од старих до нових, нпр. Мицрософт Екцел 2003, Мицрософт Екцел 2007, Мицрософт Екцел 2010, Мицрософт Екцел 2013.

Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште