Как получить слова из ячейки в excel

Я хотел получить слова из камеры. Например, ячейка A2 имеет значение «Мое имя – jayson». Я хотел получить слова: «name» и «jayson». Я хочу исключить слова с менее чем 3 символами. Как это сделать, используя формулу / функцию в excel?

Благодарю.

Этот код следует запускать с листа, который содержит ваши данные для сращивания. Я предположил, что вы работаете в столбце A

Код

  1. Использует регулярное выражение для удаления всех буквенно-цифровых строк меньше или равно 3 символам
  2. Сбрасывает пересмотренный набор строк на вновь созданный лист
  3. Разделяет эти строки с помощью excel 'Text to Columns'

Массивы вариантов используются, чтобы сделать это эффективным процессом

{Обновить: не добавлена ​​версия цикла)

введите описание изображения здесь

Original Code

  Sub Spliced() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim rng1 As Range Dim objRegex Dim X Dim lngRow As Long Set ws1 = Sheets(1) Set rng1 = ws1.Range(ws1.[a1], ws1.Cells(Rows.Count, "A").End(xlUp)) Set ws2 = Sheets.Add X = rng1.Value2 Set objRegex = CreateObject("vbscript.regexp") With objRegex .Pattern = "\b\w{1,3}\b" .Global = True End With For lngRow = 1 To UBound(X) X(lngRow, 1) = Application.Trim(objRegex.Replace(X(lngRow, 1), vbNullString)) Next ws2.Range(rng1.Address) = X ws2.Columns("A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Space:=True End Sub 

Updated:No loops

 Sub Spliced_NoLoops() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim rng1 As Range Dim objRegex Dim strDelim As String Dim strOut As String strDelim = "||" Set ws1 = Sheets(1) Set rng1 = ws1.Range(ws1.[a1], ws1.Cells(Rows.Count, "A").End(xlUp)) strOut = Join(Application.Transpose(rng1), strDelim) Set ws2 = Sheets.Add Set objRegex = CreateObject("vbscript.regexp") With objRegex .Pattern = "\b\w{1,3}\b" .Global = True End With ws2.Range(rng1.Address) = Application.Transpose(Split(Application.Trim(objRegex.Replace(strOut, vbNullString)), "||")) ws2.Columns("A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Space:=True End Sub 

Вы не показываете, что вы пробовали, поэтому кодирование с нуля …
Передайте диапазон cell-to-split этой функции, которая выполняет примерно следующее:

  1. Создайте коллекцию, в которую мы будем помещать любые строки с len> 2
  2. разделите содержимое ячейки на массив. ( варианты могут содержать массивы )
  3. оценить длину каждого сегмента и добавить в строки коллекции w / length> 2
  4. возвращаемое значение функции представляет собой набор w / квалификационных строк

Всегда сохраняйте свою работу перед запуском любого VBA. Приветствия и счастливое кодирование.

 function splitter(byref rng as range) dim return_value as collection set return_value = new collection dim split_result as variant dim idx as integer split_result = split(rng.value, " ") for idx = lbound(split_result) to ubound(split_result) if len(split_result(idx)) > 2 then return_value.add(split_result(idx)) end if next splitter = return_value end function 

У меня нет операционной системы Windows или Mac для тестирования, но синтаксис должен быть правильным, если не так.

Interesting Posts

Принятие файла Excel с io-потоком

Visual Basic – удаление нескольких строк

Чтение списка Excel Значение ячейки

Проблема кодирования UTF-8/16 при повороте файла JSON в файл CSV в nodejs

Ошибка оценки VBA 2023 не выбрасывается

как писать динамически созданные рабочие листы в Excel с использованием Pread Spreadsheet Writer?

Вставка встроенного изображения в Excel VBA

Строчный цикл по диапазону и копирование заголовков столбцов на другой рабочий лист, который удовлетворяет установленным критериям

Ошибка возврата в форму поиска, если каталог имеет рабочий стол.

Возможно ли открыть открытый файл excel

Как добавить номера, привязанные к различным учетным записям из нескольких листов

Импорт из Excel через цикл foreach

Использование переменной Excel VBA для нескольких книг

Openpyxl, Pandas или xlrd для правильного представления данных?

Прочтите файл .xls с отсутствующими значениями, используя XLConnect

Давайте будем гением компьютера.