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

Вход

Регистрация

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

 

= Мир MS Excel/Распределения текстов по ячейкам - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Распределения текстов по ячейкам (Формулы/Formulas)
Распределения текстов по ячейкам
spite Дата: Среда, 20.01.2016, 18:27 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!

Подскажите как решить задачу распределения текста на ячейки. Дело в том что у меня есть 100+ текстов.в одном txt файле. Каждый абзац текста начинается с новой строки. Вот так это выглядит в txt файле - http://joxi.ru/ZrJVD43F1bzM4r. Разделяются тексты таким знаком ---- (разделитель можно поменять). Цель: вставить каждый текст (занимает 26 строк) в отдельные ячейки. Я могу также получить 100+ txt файлов каждый с отдельным тектом, цель аналогичная. Подскажите какой самый простой способ разделить текст или вставить из файлов для того чтобы достичь поставленной цели, и как это реализовать?
 
Ответить
СообщениеДобрый день!

Подскажите как решить задачу распределения текста на ячейки. Дело в том что у меня есть 100+ текстов.в одном txt файле. Каждый абзац текста начинается с новой строки. Вот так это выглядит в txt файле - http://joxi.ru/ZrJVD43F1bzM4r. Разделяются тексты таким знаком ---- (разделитель можно поменять). Цель: вставить каждый текст (занимает 26 строк) в отдельные ячейки. Я могу также получить 100+ txt файлов каждый с отдельным тектом, цель аналогичная. Подскажите какой самый простой способ разделить текст или вставить из файлов для того чтобы достичь поставленной цели, и как это реализовать?

Автор - spite
Дата добавления - 20.01.2016 в 18:27
Gustav Дата: Среда, 20.01.2016, 18:54 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2733
Репутация: 1136 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
По фотографиям тут не лечат. Выложите пример в виде текстового файла с 3-4 блоками текста.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПо фотографиям тут не лечат. Выложите пример в виде текстового файла с 3-4 блоками текста.

Автор - Gustav
Дата добавления - 20.01.2016 в 18:54
spite Дата: Среда, 20.01.2016, 19:04 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
приложил
К сообщению приложен файл: excelforum-exam.txt (70.4 Kb)
 
Ответить
Сообщениеприложил

Автор - spite
Дата добавления - 20.01.2016 в 19:04
Gustav Дата: Среда, 20.01.2016, 19:11 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2733
Репутация: 1136 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Прекрасно :) А теперь еще нужен маленький файл Excel, сформированный вручную, с тем, как это должно окончательно выглядеть на примере хотя бы одного текста.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Среда, 20.01.2016, 19:12
 
Ответить
СообщениеПрекрасно :) А теперь еще нужен маленький файл Excel, сформированный вручную, с тем, как это должно окончательно выглядеть на примере хотя бы одного текста.

Автор - Gustav
Дата добавления - 20.01.2016 в 19:11
spite Дата: Среда, 20.01.2016, 19:18 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
распределил по ячейкам первые 5 текстов
К сообщению приложен файл: excelword-examp.xls (47.5 Kb)
 
Ответить
Сообщениераспределил по ячейкам первые 5 текстов

Автор - spite
Дата добавления - 20.01.2016 в 19:18
Gustav Дата: Четверг, 21.01.2016, 12:30 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2733
Репутация: 1136 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Думаю, данную задачу проще всего решить при помощи макроса VBA. У меня он получился совсем несложный - всего 3 строки :)
[vba]
Код
Sub parseTextFileIntoRange()
    Dim arr
    arr = WorksheetFunction.Transpose(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Application.GetOpenFilename).ReadAll & vbCrLf, vbCrLf & "-----" & vbCrLf))
    Range("A1:A" & UBound(arr)) = arr
End Sub
[/vba]
Запускаете макрос, в диалоге указываете свой текстовый файл, по окончании работы имеете свои тексты в ячейках колонки A.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеДумаю, данную задачу проще всего решить при помощи макроса VBA. У меня он получился совсем несложный - всего 3 строки :)
[vba]
Код
Sub parseTextFileIntoRange()
    Dim arr
    arr = WorksheetFunction.Transpose(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Application.GetOpenFilename).ReadAll & vbCrLf, vbCrLf & "-----" & vbCrLf))
    Range("A1:A" & UBound(arr)) = arr
End Sub
[/vba]
Запускаете макрос, в диалоге указываете свой текстовый файл, по окончании работы имеете свои тексты в ячейках колонки A.

Автор - Gustav
Дата добавления - 21.01.2016 в 12:30
spite Дата: Четверг, 21.01.2016, 17:08 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Все отлично работает, огромное спасибо за помощь!
 
Ответить
СообщениеВсе отлично работает, огромное спасибо за помощь!

Автор - spite
Дата добавления - 21.01.2016 в 17:08
spite Дата: Среда, 27.01.2016, 18:05 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день! Вынужден обратиться снова за помощью, макрос стал выдавать ошибку после изменения текста. Ошибка - http://joxi.ru/bmoopdaSMOv1Jm Пример измененного текста прикрепил к этому комментарию, скажите что там не так, уже по разному пробовал...?

Заранее спасибо за помощь!
К сообщению приложен файл: excelworld-samp.txt (31.7 Kb)
 
Ответить
СообщениеДобрый день! Вынужден обратиться снова за помощью, макрос стал выдавать ошибку после изменения текста. Ошибка - http://joxi.ru/bmoopdaSMOv1Jm Пример измененного текста прикрепил к этому комментарию, скажите что там не так, уже по разному пробовал...?

Заранее спасибо за помощь!

Автор - spite
Дата добавления - 27.01.2016 в 18:05
Gustav Дата: Четверг, 28.01.2016, 17:42 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2733
Репутация: 1136 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
макрос стал выдавать ошибку после изменения текста

Ну вот те раз - так Вы ж разделители кардинально поменяли!
В предыдущем примере был использован нормальный разделитель "перевод строки + 5 минусов + перевод строки" и всё билось как надо.
Сейчас же у Вас после 5 минусов до перевода строки идёт какой-то странный тэг типа "[fac_shortcode_115]".
Меняйте в коде строку:
[vba]
Код
vbCrLf & "-----" & vbCrLf
[/vba]
на то, что у Вас сейчас, и счастье восстановится.

P.S. Хотя можете, конечно, упростить прошлый разделитель до буквального "-----", удалив переводы строк vbCrLf. Правда, в этом случае у Вас будут оставаться некоторые пустые строки в ячейках. Т.е. я говорю о следующем:
[vba]
Код
Sub parseTextFileIntoRange2()
    Dim arr
    arr = WorksheetFunction.Transpose(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Application.GetOpenFilename).ReadAll, "-----"))
    Range("A1:A" & UBound(arr)) = arr
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Четверг, 28.01.2016, 18:56
 
Ответить
Сообщение
макрос стал выдавать ошибку после изменения текста

Ну вот те раз - так Вы ж разделители кардинально поменяли!
В предыдущем примере был использован нормальный разделитель "перевод строки + 5 минусов + перевод строки" и всё билось как надо.
Сейчас же у Вас после 5 минусов до перевода строки идёт какой-то странный тэг типа "[fac_shortcode_115]".
Меняйте в коде строку:
[vba]
Код
vbCrLf & "-----" & vbCrLf
[/vba]
на то, что у Вас сейчас, и счастье восстановится.

P.S. Хотя можете, конечно, упростить прошлый разделитель до буквального "-----", удалив переводы строк vbCrLf. Правда, в этом случае у Вас будут оставаться некоторые пустые строки в ячейках. Т.е. я говорю о следующем:
[vba]
Код
Sub parseTextFileIntoRange2()
    Dim arr
    arr = WorksheetFunction.Transpose(Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(Application.GetOpenFilename).ReadAll, "-----"))
    Range("A1:A" & UBound(arr)) = arr
End Sub
[/vba]

Автор - Gustav
Дата добавления - 28.01.2016 в 17:42
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Распределения текстов по ячейкам (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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