Excel: разбиение текста ячейки на несколько, если разделитель - цифры - VBA

Узнай цену своей работы

Формулировка задачи:

Собственно вопрос в следующем: имеется ячейка с таким, примерно, текстом "1. ххх. 2. ууу. 3. zzz. ... 15. aaa". Мне требуется разделить эту ячейку по цифрам, то есть "1. ххх", "2. ууу" и так далее. Встроенная функция "данные -> разделить по столбцам" не позволяет делать изменяющийся разделитель. Единственное, что мне пока пришло в голову - это написать макрос со счетчиком, который будет производить поиск номера символа по значению счетчика, а потом вырезать кусок текста и вставлять в новую ячейку. Но тут есть 2 проблемы: 1. Мне кажется, что можно сделать проще =) 2. Если после 1. в наименовании позиции будут указаны цифры, то программа может сбиться и всё станет очень плохо. Подскажите, пожалуйста, как можно решить эту задачу?

Решение задачи: «Excel: разбиение текста ячейки на несколько, если разделитель - цифры»

textual
Листинг программы
  1. Sub Разбить_по_номеру_выделенное()
  2.     Dim i%, k%, StartChar%, TekCell As Range, S$, Z$, TekNum%, NextNum$, Block$
  3.     For Each TekCell In Intersect(Application.Selection, ActiveSheet.UsedRange)
  4.         Z = TekCell.Value
  5.         If Z <> "" Then
  6.             StartChar = 1
  7.             For i = 2 To 40 ' 40 максимальный порядковый номер блока
  8.                NextNum = " " & i & "."
  9.                 k = InStr(StartChar, Z, NextNum)
  10.                 If k > 0 Then
  11.                    Block = Mid(Z, StartChar, k - StartChar)
  12.                    StartChar = k + 1
  13.                 Else
  14.                    Block = Mid(Z, StartChar)
  15.                 End If
  16.                 Block = Trim(Block)
  17.                 TekNum = Val(Left(Block, 3))
  18.                 TekCell.Offset(0, TekNum) = Block
  19.             Next i
  20.         End If
  21.     Next TekCell
  22. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы