Страницы: 1
RSS
Разделение и перенос текста в пределах ячейки., как перенести (разделить) текст в ячейке при неизвестной ширине столбца?
 
Доброго времени, имеется формула по сцеплению текста (СЖПРОБЕЛЫ и СЦЕПИТЬ) из четко определенных ячеек. но получается перенос не корректный, при изменении ширины столбца картина не меняется, т.к. текст в итоге длинный
Вопрос: как можно сделать корректный перенос на след. строку в ячейке (ALT+ENTER) при неопределенной ширине столбца, тоже конкретно указанного?
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Можно СИМВОЛ(10) добавить вместо пробелов.
Код
=СЖПРОБЕЛЫ(ЕСЛИ(D7<>"";D7&СИМВОЛ(10);"")&ЕСЛИ(E7<>"";E7&СИМВОЛ(10);"")&ЕСЛИ(F7<>"";F7&СИМВОЛ(10);"")&ЕСЛИ(G7<>"";G7&СИМВОЛ(10);""))

Будет лучше но, не идеально.

 
не совсем то, эта формула делает перенос между сцеплением, но если в исходной ячейке для текста превышает ширину столбца, то перенос не корректный. я так понимаю формулами это практически маловероятно сделать. а макросом возможно? по условию будет семь четко определенных ячеек с адресом на листе А2:А8 для которых необходимо применить данное форматирование. содержимое тоже четко определено "звание_фамилия_и.о.".
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Выкладывайте вариант рабочего файла, где
Цитата
будет семь четко определенных ячеек с адресом на листе А2:А8
сделаем
 
https://yadi.sk/i/bHKIkSBB3JKEeW

вкладка "ОТСУТСТВУЮТ"
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
  :qstn:
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Небольшой пример нельзя прикрепить к сообщению?
 
vikttur,можно, но 1. просили оригинал к чему привязать макрос. 2 в принципе не имеет значение к чему привязывать, инфа будет четко определена "звание( включая пробел)"ПРОБЕЛ" Фамилия  и И.О.", и запятая, для точности позиционирования. Могу после каждого ФИО вставить ALT+enter, для упрощения, но вопрос в длине строки  в ячейке < ширины столбца без переноса на след строку. именно в одной ячейке, по причине что таких строк будет 7.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
к любой конкретно заданной ячейке в которой формула примерно: =A1&" "&B1" "&....&G1
ссылка на полную версию выше. файл полностью рабочий, необходимо обработать вкладку "ОТСУТСТВУЮТ"
Изменено: Irbis_evs - 20.05.2017 23:23:54
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
народ, реально хочу довести до ума, но перенос И.О. отдельно от фамилии как то не культурно.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Здравствуйте! Как мне видится, отталкиваться нужно от количества пробелов между словами. Смотрим звания с фамилиями:
с-т Никишокин А.С
ст. с-т Захаров А.Г
В первом случае один пробел, во втором - два. Как объяснить программе, что "с-т" и "ст. с-т" - это звание, и пробел внутри звания учитывать не нужно? Может, как-то к однообразию привести данные? Помнится, когда я служил в армии, нам говорили: "Пусть безобразно, но однообразно"  :)  Может, пробелы внутри звания можно заменить нижним подчеркиванием? Тогда легче будет что-то сделать. Например, так: "ст_с-т", "мл_л-т"? Прочитать и понять это можно будет, и можно будет что-то делать с Вашей задачей.
 
Если все пробелы заменить на СИМВОЛ(160) и только обычные пробелы СИМВОЛ(32) оставить между инициалами и званием. Должно получится.
Думаю регулярными выражениями и макросом можно сделать.
Вручную сделал так в ячейках D2:G2
Алексей М.
 
Проверяйте.

Длина блока регулируется переменной
Код
MaxLen = 75
Словарь званий
Код
DicZv

Откуда брать данные сами опишите. Я сделал под приложенный пример.
 
спасибо всем, про замену символов думал, отталкивался от постоянной переменной Имя.Отчество., (И.О.,) тогда не имеет значения сколько пробелов и где. гляну вечером, на работу надо идти.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Обратите внимание на время ответов до показа файла и после этого события
 
Grr, спасибо за помощь,подскажите что надо поменять в Вашем коде, чтобы уйти от необходимости производить замену по словарю и производить подстановку Chr(10) после сочетания (., ) точка_запятая_пробел.
в таком случае будет не критична структура текста. (еще куда нибудь пригодится).
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Тогда Splita хватит. Рекурсия не нужна.
Скрытый текст
 
Спасибо, то что нужно.
внес небольшие изменения.
Код
  Next i     

    ' FinalStr = FinalStr + sStr + "., "
Изменено: Irbis_evs - 22.05.2017 13:47:58
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Grr, СПАСИБО, малость подправил код под определение ширины столбца, В итоге работает корректно примерно в 70-90%, мне достаточно.
Может кому пригодится:


Всем СПАСИБО, вопрос решен.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
Страницы: 1
Наверх