Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Разделение текста на массивы с их последующим переносом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разделение текста на массивы с их последующим переносом (Макросы/Sub)
Разделение текста на массивы с их последующим переносом
Yar4i4 Дата: Суббота, 13.02.2016, 08:50 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Доброе утро!
Искал возможность разделить текст на массивы, с последующей вставкой каждого разделённого массива в фиксированное место (ячейку).

Пример:
Текст "2-28-2 Ф ЯМ* 2-7-1 изм.1* ФЕВРАЛЬ 2016г* Дожимная компрессорная станция (II этап строительства). Компрессорный цех (6АС) 12* ДКС сеноманской залежи Песцовой площади Уренгойского НГКМ. 2 этап строительства" я разделил знаком "*" (слышал можно запятой, но она иногда встречается в тексте и может быть ошибочно принята макросом за делитель текста), разделил на пять частей.
Данный исходный текст всегда в начале процесса находится в фиксированной ячейке (A11).
1п. "2-28-2 Ф ЯМ" нужно перенести в ячейку A8 (но там уже находится текст "ОТЧЁТ №" - его нужно оставить, так чтобы в итоге в ячейке было прописано "ОТЧЁТ №2-28-2 Ф ЯМ" и объединить диапазон A8:H8 в одну ячейку.
2п. "2-7-1 изм.1" нужно перенести в ячейку A16 и объединить диапазон A16:H16 в одну ячейку.
3п. "ФЕВРАЛЬ 2016г" нужно перенести в ячейку A17 и объединить диапазон A17:H17 в одну ячейку.
4п. "Дожимная компрессорная станция (II этап строительства). Компрессорный цех (6АС) 12" нужно перенести в ячейку A12 и объединить диапазон A12:H12 в одну ячейку.
5п. "ДКС сеноманской залежи Песцовой площади Уренгойского НГКМ. 2 этап строительства" оставить в исходной ячейке A11 и объединить диапазон A11:H11 в одну ячейку.
Во вложении файл с двумя листами. 1 - исходный вариант, 2 - итоговый вариант (как должно получится). На цвет не обращайте внимание - для удобства сделал.
К сообщению приложен файл: 4804135.xlsx (12.8 Kb)
 
Ответить
СообщениеДоброе утро!
Искал возможность разделить текст на массивы, с последующей вставкой каждого разделённого массива в фиксированное место (ячейку).

Пример:
Текст "2-28-2 Ф ЯМ* 2-7-1 изм.1* ФЕВРАЛЬ 2016г* Дожимная компрессорная станция (II этап строительства). Компрессорный цех (6АС) 12* ДКС сеноманской залежи Песцовой площади Уренгойского НГКМ. 2 этап строительства" я разделил знаком "*" (слышал можно запятой, но она иногда встречается в тексте и может быть ошибочно принята макросом за делитель текста), разделил на пять частей.
Данный исходный текст всегда в начале процесса находится в фиксированной ячейке (A11).
1п. "2-28-2 Ф ЯМ" нужно перенести в ячейку A8 (но там уже находится текст "ОТЧЁТ №" - его нужно оставить, так чтобы в итоге в ячейке было прописано "ОТЧЁТ №2-28-2 Ф ЯМ" и объединить диапазон A8:H8 в одну ячейку.
2п. "2-7-1 изм.1" нужно перенести в ячейку A16 и объединить диапазон A16:H16 в одну ячейку.
3п. "ФЕВРАЛЬ 2016г" нужно перенести в ячейку A17 и объединить диапазон A17:H17 в одну ячейку.
4п. "Дожимная компрессорная станция (II этап строительства). Компрессорный цех (6АС) 12" нужно перенести в ячейку A12 и объединить диапазон A12:H12 в одну ячейку.
5п. "ДКС сеноманской залежи Песцовой площади Уренгойского НГКМ. 2 этап строительства" оставить в исходной ячейке A11 и объединить диапазон A11:H11 в одну ячейку.
Во вложении файл с двумя листами. 1 - исходный вариант, 2 - итоговый вариант (как должно получится). На цвет не обращайте внимание - для удобства сделал.

Автор - Yar4i4
Дата добавления - 13.02.2016 в 08:50
Pelena Дата: Суббота, 13.02.2016, 09:28 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте. Попробуйте так
[vba]
Код
Public Sub SplitString()
    With Sheets("1")
        st = Split(.[A11].Value, "*")
        .[A8] = .[A8] & " " & Trim$(st(0))
        .[A16] = Trim$(st(1))
        .[A17] = Trim$(st(2))
        .[A12] = Trim$(st(4))
        .[A11] = Trim$(st(3))
        .Range("A8:H8").Merge
        .Range("A16:H16").Merge
        .Range("A17:H17").Merge
        .Range("A12:H12").Merge
        .Range("A11:H11").Merge
    End With
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте. Попробуйте так
[vba]
Код
Public Sub SplitString()
    With Sheets("1")
        st = Split(.[A11].Value, "*")
        .[A8] = .[A8] & " " & Trim$(st(0))
        .[A16] = Trim$(st(1))
        .[A17] = Trim$(st(2))
        .[A12] = Trim$(st(4))
        .[A11] = Trim$(st(3))
        .Range("A8:H8").Merge
        .Range("A16:H16").Merge
        .Range("A17:H17").Merge
        .Range("A12:H12").Merge
        .Range("A11:H11").Merge
    End With
End Sub
[/vba]

Автор - Pelena
Дата добавления - 13.02.2016 в 09:28
Yar4i4 Дата: Суббота, 13.02.2016, 13:03 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013

Вы великолепны. Благодарю Вас.
Всё работает.

(' With Sheets("1")
-где 1 это название листа.) разбираюсь потихоньку - мне нравится. Спасибо.


Сообщение отредактировал Yar4i4 - Суббота, 13.02.2016, 13:30
 
Ответить
Сообщение
Вы великолепны. Благодарю Вас.
Всё работает.

(' With Sheets("1")
-где 1 это название листа.) разбираюсь потихоньку - мне нравится. Спасибо.

Автор - Yar4i4
Дата добавления - 13.02.2016 в 13:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разделение текста на массивы с их последующим переносом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!