Здравствуйте! Прошу помощи с программой, сделать нужно следующее - у нас есть на первом листе некая "База", в ячейке A1 допустим забит текст, вроде "Один Два Три Четыре Пять Шесть Семь Восемь Девять Десять", необходимо чтобы текст переносился на лист под номером два, но с одним условием, чтобы весь текст ячейки A1, распределился по всем ячейкам вниз, то есть чтобы программа поставила условие в максимальное количество символов допустим в 8 и все что идет дальше переносилось на новую строку. Хотелось бы конечно чтобы перенос производился при помощи какой-либо кнопки, чтобы постоянно не заходить в VBA. Было бы замечательно, чтобы программа понимала когда закончилось слово, допустим чтобы она не вставляла "Один Дват ри" то есть, чтобы считала допустим пробел после слова, который бы сигнализировал о окончании текста.
Здравствуйте! Прошу помощи с программой, сделать нужно следующее - у нас есть на первом листе некая "База", в ячейке A1 допустим забит текст, вроде "Один Два Три Четыре Пять Шесть Семь Восемь Девять Десять", необходимо чтобы текст переносился на лист под номером два, но с одним условием, чтобы весь текст ячейки A1, распределился по всем ячейкам вниз, то есть чтобы программа поставила условие в максимальное количество символов допустим в 8 и все что идет дальше переносилось на новую строку. Хотелось бы конечно чтобы перенос производился при помощи какой-либо кнопки, чтобы постоянно не заходить в VBA. Было бы замечательно, чтобы программа понимала когда закончилось слово, допустим чтобы она не вставляла "Один Дват ри" то есть, чтобы считала допустим пробел после слова, который бы сигнализировал о окончании текста.deft0n
Sub tt() ar = Split(Range("A2")) Sheets("Куда переносить").Range("A2").Resize(UBound(ar) + 1) = Application.Transpose(ar) End Sub
[/vba] Ну, на самом деле не 2, очистить еще нужно [vba]
Код
Sub tt() ar = Split(Range("A2")) With Sheets("Куда переносить") .Resize(.Parent.Cells(.Parent.Rows.Count, 1).End(3).Row).ClearContents .Range("A2").Resize(UBound(ar) + 1) = Application.Transpose(ar) .Select End With End Sub
[/vba] И еще вариант [vba]
Код
Sub tt() Application.DisplayAlerts = 0 With Sheets("Куда переносить").Range("A2") .Resize(.Cells(.Rows.Count, 1).End(3).Row).ClearContents .Value = Range("A2").Value .EntireColumn.ColumnWidth = 1 .Justify .EntireColumn.AutoFit .Parent.Select End With Application.DisplayAlerts = 1 End Sub
[/vba]
Да ладно, "программа"-то две строки всего [vba]
Код
Sub tt() ar = Split(Range("A2")) Sheets("Куда переносить").Range("A2").Resize(UBound(ar) + 1) = Application.Transpose(ar) End Sub
[/vba] Ну, на самом деле не 2, очистить еще нужно [vba]
Код
Sub tt() ar = Split(Range("A2")) With Sheets("Куда переносить") .Resize(.Parent.Cells(.Parent.Rows.Count, 1).End(3).Row).ClearContents .Range("A2").Resize(UBound(ar) + 1) = Application.Transpose(ar) .Select End With End Sub
[/vba] И еще вариант [vba]
Код
Sub tt() Application.DisplayAlerts = 0 With Sheets("Куда переносить").Range("A2") .Resize(.Cells(.Rows.Count, 1).End(3).Row).ClearContents .Value = Range("A2").Value .EntireColumn.ColumnWidth = 1 .Justify .EntireColumn.AutoFit .Parent.Select End With Application.DisplayAlerts = 1 End Sub
_Boroda_, такой вопрос, у меня есть допустим уже цельный текст, что-то вроде "Молодой человек", но мне не нужно чтобы "молодой" и "человек" были на отдельных ячейках, что нужно добавить?
_Boroda_, такой вопрос, у меня есть допустим уже цельный текст, что-то вроде "Молодой человек", но мне не нужно чтобы "молодой" и "человек" были на отдельных ячейках, что нужно добавить?deft0n
Сообщение отредактировал deft0n - Четверг, 12.07.2018, 11:53
Или создать отдельный список исключений и проверять его макросом, или писать слова не через пробел (символ 32), а через неразрывный пробел (символ 160). Ввести его можно, набрав на цифровой клавиатуре 0160, держа при этом нажатым левый Альт, или Вставка - Символ - Специальные знаки - Неразрывный пробел
Iricha, это Вы про что?
Или создать отдельный список исключений и проверять его макросом, или писать слова не через пробел (символ 32), а через неразрывный пробел (символ 160). Ввести его можно, набрав на цифровой клавиатуре 0160, держа при этом нажатым левый Альт, или Вставка - Символ - Специальные знаки - Неразрывный пробел
_Boroda_, снова я, думаю уже надоел но если не сложно то как можно реализовать чтобы он переносил слово опираясь не от проблема, а от ограничения символов?
_Boroda_, снова я, думаю уже надоел но если не сложно то как можно реализовать чтобы он переносил слово опираясь не от проблема, а от ограничения символов?deft0n
Еще раз уточните условия - как переноситься должно? Делим по словам, но если длина нескольких слов (включая пробелы между ними) будет меньше 8 знаков, то эти слова суем в одну ячейку, правильно?
Еще раз уточните условия - как переноситься должно? Делим по словам, но если длина нескольких слов (включая пробелы между ними) будет меньше 8 знаков, то эти слова суем в одну ячейку, правильно?_Boroda_
Прошу прощения за долгий ответ, проблемы с интернетом.
Получается смотрите, у нас есть слово, предположим "Персональный компьютер" - это, уже не входит в одну строку, но нужно чтобы программа не дробила слова, что-то вроде "Персональн ый" "комп ьютер", чтобы было в одной ячейке "Персональный" в другой "Компьютер", цельное слово, ибо обычный перенос делит именно по символам, я неправильно изначально объяснил, потому он работает не совсем так, как нужно было
Прошу прощения за долгий ответ, проблемы с интернетом.
Получается смотрите, у нас есть слово, предположим "Персональный компьютер" - это, уже не входит в одну строку, но нужно чтобы программа не дробила слова, что-то вроде "Персональн ый" "комп ьютер", чтобы было в одной ячейке "Персональный" в другой "Компьютер", цельное слово, ибо обычный перенос делит именно по символам, я неправильно изначально объяснил, потому он работает не совсем так, как нужно было deft0n
Или создать отдельный список исключений и проверять его макросом, или писать слова не через пробел (символ 32), а через неразрывный пробел (символ 160)
Если нужно что-то более конкретное (я про список исключений), то нужен Ваш нормальный файл - как было, как нужно, список исключений. Желательно все это (как было - как нужно) в нескольких вариантах. И причем здесь вообще тогда 8 символов, если делим по словам? А если Вы про дележку по словам независимо от их длины, то разве мои макросы из 3-го поста не так делают? Короче, по-любому нужен пример
* Добавлено Тем более, что может быть вариант, когда "Один Два" мы не делим, а "Два Три" делим. Тогда на длину слов завязка не получается
Если Вы про неделимые словосочетания - то на этот вопрос я Вам ответил -
Или создать отдельный список исключений и проверять его макросом, или писать слова не через пробел (символ 32), а через неразрывный пробел (символ 160)
Если нужно что-то более конкретное (я про список исключений), то нужен Ваш нормальный файл - как было, как нужно, список исключений. Желательно все это (как было - как нужно) в нескольких вариантах. И причем здесь вообще тогда 8 символов, если делим по словам? А если Вы про дележку по словам независимо от их длины, то разве мои макросы из 3-го поста не так делают? Короче, по-любому нужен пример
* Добавлено Тем более, что может быть вариант, когда "Один Два" мы не делим, а "Два Три" делим. Тогда на длину слов завязка не получается_Boroda_
А мои мяуки вообще могут поделить "Персональный компьютер дома" на "Персональный компьютер" и "дома" или "Персональный" "компьютер" "дома" В зависимости от разрешенного кол-ва символов в строке.
А мои мяуки вообще могут поделить "Персональный компьютер дома" на "Персональный компьютер" и "дома" или "Персональный" "компьютер" "дома" В зависимости от разрешенного кол-ва символов в строке.RAN
Давайте объясню так. Я работаю в программе "AutoCAD", переношу Excel таблицы в него, так как они более приспособлены и удобнее чем в Autocad, но в нем (AutoCAD) есть некая проблема, когда в 1 ячейку пишешь текст, он начинает его переносить на следующую строку, но никак не на новую ячейку, в следствии чего расширяется ячейка а чего делать категорически нельзя. Вот, на фото видно как текст выглядит после конечного редактирования именно человеком, но на то, чтобы перебрать таким образом все листы, уходит по несколько часов. Это все наименование одного прибора, которое переносится после достижения края ячейки. Вот в данном файле, фактически замечательная работа, но есть одно но, в столбец вписывается весь текст, но возможно это не возможно вообще сделать, если так - то поправьте, но нет ли условного "Знака" чтобы программа поняла когда ей стоит понять что пошел допустим следующий прибор, на второй картинке видно что следующий прибор начался после (поз.)
Давайте объясню так. Я работаю в программе "AutoCAD", переношу Excel таблицы в него, так как они более приспособлены и удобнее чем в Autocad, но в нем (AutoCAD) есть некая проблема, когда в 1 ячейку пишешь текст, он начинает его переносить на следующую строку, но никак не на новую ячейку, в следствии чего расширяется ячейка а чего делать категорически нельзя. Вот, на фото видно как текст выглядит после конечного редактирования именно человеком, но на то, чтобы перебрать таким образом все листы, уходит по несколько часов. Это все наименование одного прибора, которое переносится после достижения края ячейки. Вот в данном файле, фактически замечательная работа, но есть одно но, в столбец вписывается весь текст, но возможно это не возможно вообще сделать, если так - то поправьте, но нет ли условного "Знака" чтобы программа поняла когда ей стоит понять что пошел допустим следующий прибор, на второй картинке видно что следующий прибор начался после (поз.) deft0n