Как получить первое слово в Microsoft Excel
Если вы столкнетесь с ситуацией, когда вам требуется только первое слово в каждой строке ячейки, а не весь символ, то вы должны прочитать эту статью. Следующее руководство поможет вам получить только первое слово через код VBA в excel.
В этой статье мы сосредоточимся на том, как сохранить первое слово только в каждой строке ячейки, разделенное точкой с запятой через макрокоды.
Вопрос: данные, с которыми я работаю, иногда содержат несколько строк в каждой ячейке, и я хочу извлечь только первое слово.
Вы можете найти исходный вопрос http://www.excelforum.com/excel-programming-vba-macros/1093228-keep-first-word-in-each-line-separate-by-semicolon-and-remove-everything-else .html [здесь]
Ниже приведен снимок введенного текста (до листа)
===
Ниже приведен снимок входящего текста (после листа) в столбце A & требует вывода в столбце B; см. снимок ниже:
===
===
Получить код; нам нужно выполнить следующие шаги, чтобы запустить редактор VB. Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic
-
Скопируйте приведенный ниже код в стандартный модуль
Function 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 To Count) For i = 0 To Count If i = 0 Then Arr(i) = Left(rng, InStr(1, rng, " ") - 1) ElseIf j = 0 Then j = InStr(1, rng, Chr(10)) Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j) Else 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 = Left(rng, InStr(1, rng, " ")) Else FirstWordOnly = rng End If End If End Function
===
Теперь код VBA готов к использованию; мы будем использовать только что созданную функцию, определяемую пользователем, то есть «FirstWordOnly» в Before Sheet.
Чтобы получить вывод с использованием UDF в ячейке B2, формула будет иметь вид = FirstWordOnly (A2)
Пояснение к коду:
В приведенном выше коде мы использовали функции COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.
«Лен (рнг)»; это проверит длину ячейки, которую мы называем «Replace (rng, Chr (10),» «)»; Код проверяет Chr (10), т.е. разрыв строки в каждой строке, а затем заменяет его двойной кавычкой (ничего)
‘Count = Len (rng) — Len (Replace (rng, Chr (10),» «))’; Count будет сохранять разницу длины каждой строки после замены разрыва строки If 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 .
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]