Страницы: 1
RSS
Перенос текста по строкам, Необходимо текст из объединенной ячейки перенести на строки с автоматическим переносом
 
Добрый день, уважаемые форумчане!
Помогите, пожалуйста, со следующей задачей: На листе есть объединенные ячейки, где написан текст, его нужно ссылкой вставить в строки, чтобы он автоматически переносился с одной строки на другую. Как это можно реализовать, может какой-нибудь макрос есть?
 
Добрый.
Как нужно делить текст? Есть какая-то логика?
И почему первая строка в столбце F, а остальные в С?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., Первая строка в столбце F, потому что по идее столбцы СDE уже заполнены какой-то информацией. Логика проста, текст с ячейки должен автоматически заполняться в эти строки с переносами целых слов, то есть делить слово на 2 части нельзя, если слово не входит, оно переносится на строку пониже  
 
Поиск "текст по строкам" = 8 страниц
 
Что-то соорудил. Вроде работает.
Смотрите файл. Используется 2 формулы для извлечения текста + доп. столбец.
Изменено: Максим В. - 11.08.2023 10:50:12
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., Большое спасибо, то что нужно!
 
Цитата
Alistar написал:
Большое спасибо, то что нужно!
Странно, что это то что нужно.
Вы ведь не озвучили никакой логики распределения, кроме того, что слова нельзя разделять.
Ну если подходит, пользуйтесь.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
У Максима В. хорошее решение, тем более, что только формулами, но надо подгонять распределяемый текст к нужной ширине указанием количества строк. Но если ширина задана изначально, а количество будущих строк неизвестно, то придётся делать иначе.
Штатный инструмент для непосредственного ручного выполнения данной задачи находится в меню Главная -> Заполнить -> Выровнять. Это в Excel 2010, в других, думаю, примерно так же. Перед этим надо выделить ячейку с текстом и несколько ячеек рядом, если надо распределить по строкам по желаемой ширине.
Но этот метод не работает с объединённой ячейкой. Но главное, длина текста ограничена 255 символов. Т.е. нужно вручную сначала привести исходную область с текстом в нормальный вид, а потом, если текст длинный, вручную построчно переносить отрезанный хвост текста в новую область и опять запускать действие Выровнять.
Во вложении макрос, который примерно это и делает. Добавлено внесение текста с новой строки, если в самой ячейке есть символ абзаца.
Метод Range.Justify хорош тем, что распределяет текст с учётом форматирования шрифта каждой новой строки. Т.е. не надо думать над количеством слов (символов) в каждой строке, если шрифт различается.
 
Максим В., можете объяснить, пожалуйста, как точно работает данный файл? Вставил другой текст, и получил неравномерный перенос.
 
У меня получилось массивное решение задачи этой. Но до ума не могу довести, потому что не всегда правильно переносит. Да и приходится ручками разделять текст по столбам.  
 
Alistar, вариант с макросом, если я правильно понял что вам нужно.
Переносит текст указанный в ячейке "C11" и текст из объединенного диапазона в файле Строки V1.
Вводите любой текст и точность регулируйте коэффициентом.



Изменено: asesja - 27.08.2023 14:05:08 (Корректировка вложения)
 
Еще формульный вариант
а так , да, такие задачи лучше макросом
 
asesja, Большое спасибо, к сожалению пока нет такого опыта в написании макросов(
 
Павел \Ʌ/, Большое спасибо вам!
Страницы: 1
Наверх