Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 08.08.2016
Сообщений: 6
Excel

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

06.10.2016, 12:05. Показов 5028. Ответов 5
Метки нет (Все метки)

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

Подскажите, пожалуйста, как можно решить эту задачу?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2016, 12:05
Ответы с готовыми решениями:

Разбиение ячейки на несколько
Добрый день. Прошу прощения за дурацкий вопрос, но что-то не могу разобраться. В ячейке А1 через...

Разделение ячейки на строки по нескольким разделителям
Вопрос такой, есть несколько названий нас. Пунктов в ячейке , к примеру п.Нагорный, с.Бекетовка ...

Разнести текст из ячейки по другим, ориентируясь на разделитель
Доброе время суток! Столкнулся вот с такой проблемой: Есть столбец, в котором содержится инфо...

5
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
06.10.2016, 15:04
Непонятно разделять в ячейки строки или столбцов, пример бы...
0
1 / 1 / 0
Регистрация: 08.08.2016
Сообщений: 6
06.10.2016, 15:20  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Непонятно разделять в ячейки строки или столбцов, пример бы...
Пусть в ячейке А1 такой текст: "1. ххх. 2. ууу. 3. zzz. ... 15. aaa".
Надо, чтобы в ячейках А1:А15 стал текст соответственно:
А1: "1. ххх."
А2: "2. ууу."
А3: "3. zzz."
...
А15: "15. ааа."

Такой пример достаточен или нужны ещё какие-то уточнения?
0
 Аватар для KoGG
5640 / 1622 / 418
Регистрация: 23.12.2010
Сообщений: 2,431
Записей в блоге: 1
06.10.2016, 15:43
Лучший ответ Сообщение было отмечено tiho_mirno как решение

Решение

Если номера идут строго по возрастанию:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
в пропущенных номерах ячейки остаются пустыми.
Разбивал по столбцам, отставляя исходник.
По строкам с затиранием исходника надо поменять строку 18 на
Visual Basic
1
TekCell.Offset(TekNum - 1, 0) = Block
Если пропусков номеров не будет, то после 18 вставьте строку
Visual Basic
1
If k = 0 Then Exit For
1
1 / 1 / 0
Регистрация: 08.08.2016
Сообщений: 6
06.10.2016, 15:54  [ТС]
Господин КoGG, снимаю шляпу! Ваш код работает прекраснейшим образом! Большое спасибо!
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
06.10.2016, 16:29
Как вариант предложу:
Допустим в ячейке A1="1. ххх. 2. ууу. 3. zzz. 15. aaa"
Visual Basic
1
2
3
4
5
6
Sub Разбить_по_номеру()
    s = Split([a1], ". ")
    For i = 0 To UBound(s) Step 2
        Cells(i / 2 + 2, 1) = s(i) & ". " & s(i + 1) & "."
    Next
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.10.2016, 16:29
Помогаю со студенческими работами здесь

Разделитель тысяч в ячейке с текстом
Здравствуйте, ув. форумчане. Завис на данной проблемке. Как можно вставить число в ячейку с текстом...

Разбить текст ячейки (строки), содержащий разделитель, на строки макросом
Необходимо разбить текст в ячейке (с разделителями &quot;Alt+Enter&quot;) на отдельные строки

Если ячейка содержит ТЕКСТ и Вторая ячейка равна ТЕСКТУ то вернуть значение Х
Добрый день, уважаемое сообщество. Не могу решить такую, казалось бы, простую задачу. Есть...

Если в ячейке есть слово "Услуга", то в данной ячейке текст выделять жирным
Помогите пожалуйста. Нужно написать если на протяжение всей таблицы если в ячейке есть слово...

Разбиение текстового файла на несколько
Доброго времени суток! Без лишних деталей прошу у вас помощи - суть: существует csv-файл вида:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru