Excel: разбиение текста ячейки на несколько, если разделитель - цифры - VBA
Формулировка задачи:
Собственно вопрос в следующем: имеется ячейка с таким, примерно, текстом "1. ххх. 2. ууу. 3. zzz. ... 15. aaa".
Мне требуется разделить эту ячейку по цифрам, то есть "1. ххх", "2. ууу" и так далее.
Встроенная функция "данные -> разделить по столбцам" не позволяет делать изменяющийся разделитель.
Единственное, что мне пока пришло в голову - это написать макрос со счетчиком, который будет производить поиск номера символа по значению счетчика, а потом вырезать кусок текста и вставлять в новую ячейку. Но тут есть 2 проблемы:
1. Мне кажется, что можно сделать проще =)
2. Если после 1. в наименовании позиции будут указаны цифры, то программа может сбиться и всё станет очень плохо.
Подскажите, пожалуйста, как можно решить эту задачу?
Решение задачи: «Excel: разбиение текста ячейки на несколько, если разделитель - цифры»
textual
Листинг программы
- Sub Разбить_по_номеру_выделенное()
- Dim i%, k%, StartChar%, TekCell As Range, S$, Z$, TekNum%, NextNum$, Block$
- For Each TekCell In Intersect(Application.Selection, ActiveSheet.UsedRange)
- Z = TekCell.Value
- If Z <> "" Then
- StartChar = 1
- For i = 2 To 40 ' 40 максимальный порядковый номер блока
- NextNum = " " & i & "."
- k = InStr(StartChar, Z, NextNum)
- If k > 0 Then
- Block = Mid(Z, StartChar, k - StartChar)
- StartChar = k + 1
- Else
- Block = Mid(Z, StartChar)
- End If
- Block = Trim(Block)
- TekNum = Val(Left(Block, 3))
- TekCell.Offset(0, TekNum) = Block
- Next i
- End If
- Next TekCell
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д