Ако попаднете в ситуация, в която се нуждаете само от първа дума във всеки ред на клетка, а не от целия знак, тогава трябва да прочетете тази статия. Следният урок ще ви помогне при извличането само на първа дума чрез VBA код в Excel.
В тази статия ще се съсредоточим върху това как да запазим първата дума само във всеки ред на клетка, разделена с точка и запетая чрез макро кодове.
Въпрос: Данните, в които работя, понякога имат няколко реда във всяка клетка и искам да извлека само първата дума.
Можете да намерите оригинален въпрос тук
Следва моментна снимка на въведения текст (преди лист)
Следва моментна снимка на въведения текст (След лист) в колона А & изисква извеждане в колона В; вижте моментната снимка по -долу:
За да получите кода; трябва да следваме стъпките по -долу, за да стартираме VB редактор
- Кликнете върху раздела Разработчик
- От групата Кодове изберете Visual Basic
- Копирайте кода по -долу в стандартния модул
Функция 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 За броене) За i = 0 За броене Ако i = 0 Тогава Arr (i) = Наляво (rng, InStr (1, rng, "")) - 1) Иначе Ако j = 0 Тогава j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Друго 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 = Наляво (rng, InStr (1, rng, "")) Else FirstWordOnly = rng End If End If End Функция
Сега кодът VBA е готов за употреба; ще използваме новосъздадената от потребителя функция, т.е. "FirstWordOnly" в Преди листа.
- За да получите изхода, използвайки UDF в клетка В2, формулата ще бъде
- = FirstWordOnly (A2)
Код Обяснение:
В горния код използвахме функции COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
- ‘Len (rng)’; това ще провери дължината на клетката, за която говорим
- „Замяна (rng, Chr (10)," ")“; Кодът проверява Chr (10), т.е. прекъсване на реда във всеки ред и след това го заменя с двойни кавички (нищо)
- ‘Count = Len (rng) - Len (Замяна (rng, Chr (10)," „))"; Count ще съхранява разликата в дължината на всеки ред след замяна на прекъсването на реда
- Ако Count> 0; това ще провери дали дължината на Count е по -голяма от нула и ако се намери равна на нула, т.е. клетката е празна, тогава условието IF няма да изпълни кода. За да проверите това, можете да използвате = FirstWordOnly (A5) в клетка B5 и тя ще върне 0
- Ако клетката не е празна, тогава цикълът For ще се използва с условие IF и с функция LEFT ще извлечем първата дума
- Функцията JOIN ще добави точка и запетая в края, ако има няколко реда във всяка клетка
Заключение: С помощта на UDF можем да премахнем всичко във всеки ред на клетката, с изключение на първата дума през VBA. Тази функция ще работи във всички версии от стари до нови, например Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта