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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д