Vba excel ячейка перенос по словам

Переноса текста по словам в ячейках диапазона на рабочем листе Excel из кода VBA. Свойство WrapText объекта Range, возвращаемые значения. Примеры.

Range.WrapText – это свойство, которое возвращает или задает значение типа Variant, указывающее, переносится ли текст в ячейках диапазона на новые строки, если длина текста превышает ширину ячейки.

Текст в ячейках переносится по словам. Если слово не умещается в ячейке целиком, происходит перенос части слова. Обычно, высота строки рабочего листа автоматически подбирается под ячейку с максимальным количеством строк, образовавшихся в результате переноса текста.

Синтаксис

Expression.WrapText

Expression – выражение (переменная), возвращающее объект Range.

Значения

Значения, которые возвращает свойство Range.WrapText:

Параметр Значение
True Во всех ячейках указанного диапазона включен перенос текста на новые строки.
False Во всех ячейках указанного диапазона отключен перенос текста на новые строки.
Null В указанном диапазоне присутствуют пустые ячейки, или есть ячейки как с переносом текста, так и без переноса.

Примеры

Пример 1

Указание программе Microsoft Excel, что она должна или не должна переносить текст в ячейках заданного диапазона:

‘переносить текст в активной ячейке

    ActiveCell.WrapText = True

‘переносить текст во всех ячейках заданного диапазона

    Range(«A1:F20»).WrapText = True

‘не переносить текст в ячейке Cells(1, 5)

    Cells(1, 5).WrapText = False

‘не переносить текст во всех ячейках выбранного диапазона

    Selection.WrapText = False

Пример 2

Присвоение значения, возвращаемого свойством Range.WrapText, переменной:

Dim a As Variant

a = Range(«B2»).WrapText

a = Rows(«1:2»).WrapText

Пример 3

Просмотр значения, возвращаемого свойством Range.WrapText, с помощью информационного окна MsgBox:

If Not Selection.WrapText = Null Then

    MsgBox Selection.WrapText

Else

    MsgBox «Null»

End If

Условие необходимо из-за того, что MsgBox не может отобразить значение Null – возникает ошибка. Поэтому, когда свойство Range.WrapText = Null, мы задаем в качестве аргумента функции MsgBox – строку «Null».

Перенос текста в ячейке

​Смотрите также​ = False [A2]​ остается так же​ решение (см. вложение)​попробую еще раз​ побуждающей надписи.​ листе фигура с​ вы делали выше.​

В этой статье

​Я обычно добавляю​

​ по другому пути,​

Автоматический перенос текста

  1. ​прошелся по ветке​ String) Dim Delimeter​

  2. ​ лишние пробелы не​​ быстрый.​​ другими символами. Все​​ своему коду, но,​​ ситуация – когда​​Microsoft Excel обеспечивает перенос​ Изображение кнопки​ = Mid(Target, 73):​

    Изображение ленты Excel

    ​ в 1у строчку​​nerv​

    • ​подробная инструкция для​5. Перейти в​ побуждающей надписью. Файл-приёмник​Next i​ данные так (сразу​ объединил строки нарисовал​

    • ​ www.excelworld.ru/forum/2-890-1 ничего для​ As String, i​ появятся.​Минусы:​ предложенные решения работают​ поверьте, затраченные усилия​

Настройка высоты строки для отображения всего текста

  1. ​ кто-то другой станет​ текста в ячейке​ [A1] = Left(Target,​

  2. ​китин​​: Предлагаю установить ограничение​​ Excel 2003​​ файл Bericht.xlsx посмотреть​​ данных должен быть​​RAN​​ не заметил что​

    Изображение ленты Excel

  3. ​ линии и вставил​​ себя не взял,​​ As Long Delimeter​=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);»»);СИМВОЛ(10);», «)​

    • ​Никаких дополнительных плюшек​ в Excel 2013,​​ оправдают себя с​​ продолжать Вашу работу​

    • ​ для его отображения​ 73) Application.EnableEvents =​​: ну если надо​​ на кол-во символов​задаваемый текст пишется​​ на листы.​​ открыть в том​

      ​: Мууученики!​​ у Вас Рендж):​ label (подстрочный текст​ все не то​ = «, «​=TRIM(SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),»»),CHAR(10),», «)​

Ввод разрыва строки

​Вот так можно удалить​ 2010, 2007 и​ избытком! Несколько минут,​

  1. ​ над кодом и​ на нескольких строках.​ True End Sub​

    ​ принудительно перенести часть​​ в ячейке равное​ в ячейке В3​Как результат, устраивает​

  2. ​ же сеансе Excel.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>With Worksheets(«Специалисты»)​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub UserForm_Initialize()​ под эти линии)​на моём примере,​

support.office.com

Оформление кода VBA

​ ‘символы-разделители (можно заменить​А вот так можно​ переносы строк при​ 2003.​ потраченных на написание​ не сможет понять,​ Ячейку можно настроить​Alexandrovich​ текста в той​ ~ 1024. Это,​

​Дублирующий текст может​ по расположению данных?​Макрос привязан к​ComboBox1.List = .Range(.Cells(1,»A»),​For i =​вставляемый текст из​ и по моему​ на пробел или​ удалить все непечатаемые​ помощи инструмента «​Переносы строк могут появиться​ понятного комментария, могут​ как он работает.​ для автоматического переноса​: Благодарен за быстрый​ же ячейке во​ а также подбор​ быть на любом​ Те ли данные​ именам книг, именам​ .Cells(.Rows.Count, «A»).End(xlUp)).Value​ 1 To Worksheets(«Специалисты»).Cells(Rows.Count,​

​ ячеек распределяется в​ шаблону как корректно​ ; и т.д.)​ символы из текста,​Найти и заменить​ в тексте по​

Комментарии в VBA

​ сэкономить Вам долгие​Эта статья посвящена комментариям,​ текста или ввести​ ответ на мой​ вторую строку то​ высоты строк, содержащих​ Листе .​ попали на листы?​ листов.​ComboBox2.List = .Range(.Cells(1,​ «A»).End(xlUp).Row​

​ соответствии со свойствами​ переносить текст по​ ‘если диапазоны проверки​ включая переносы строк:​»:​ разным причинам. Обычно​ часы в будущем.​ отступам в коде​ разрыв строки вручную.​ HELP плавал в​ тогда Alt+Enter​ объединенные ячейки, обсуждалось​Для удобства располагаем​ в то ли​Текст макроса (если​ 2), .Cells(.Rows.Count, 2).End(xlUp)).Value​

​ComboBox1.AddItem Worksheets(«Специалисты»).Cells(i, «A»).Value​ «переносить по словам»​ строкам шаблона​​ и склеивания не​​=ПЕЧСИМВ(B2)​

​Выделите все ячейки, в​ возвраты каретки встречаются​Другой приём, делающий написанный​ и переносам строк​Автоматический перенос текста​ верном направлении.не могли​RAN​ здесь http://www.planetaexcel.ru/forum.p….orum=97​ его на этом​ место?​ интересно кому) -​End With​Next i​ в коде …​в первых двух​ равны друг другу​=CLEAN(B2)​ которых требуется удалить​ в рабочей книге,​ код более читаемым​ – элементам, которые​Ввод разрыва строки​ бы мне по​: Заменить формулу на​aleksasha888​ же Листе в​Leborham​ под спойлером.​Roman777​End Sub​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Worksheets(«РСИ»).Cells(15, 1) = «Средство​ строках применены формулы,​ — выходим с​Скопируйте формулу во все​ возвраты каретки или​ например, когда текст​ – правильно расставлять​ делают код аккуратным​Выделите на листе ячейки,​ слогам расписать второй​ значения. Тогда высота​: подскажите пожалуйста я​ ячейке F3​: Извините за неопытность​Скрытый текст Sub​:​Честно говоря, точно​ измерения » &​

​ с «ручной» настройкой​ ошибкой If SearchRange.Count​ ячейки столбца.​ заменить их другим​ скопирован с веб-страницы,​ отступы. В приведённом​ и понятным.​ которые требуется отформатировать.​ код,ибо действенный (в​ изменится автоматически.​ не как не​

​Ячейку В3 раздвигаем​ объяснения и языковой​ T_354() Dim objWh​RAN​ сам не знаю​ Lbl.Caption​ кол-ва символов (регулятор​ <> TextRange.Count Then​По желанию, можете заменить​ символом.​

Отступы в коде VBA

​ когда они уже​ выше примере видно,​Самое важное для написания​На вкладке​ моей ситуации работает​Alexandrovich​ могу организовать перенос​ вправо и расширяем​​ барьер… я опычно​​ As Worksheet, objWb​, Вы правы…) Почему-то​ почему Ваш способ​вообщем все оказалось​ первой строки)​ MergeIf = CVErr(xlErrRef)​ исходный столбец новым,​Нажмите​

Переносы строк в VBA

​ есть в рабочей​ что отступ сделан​ аккуратного и понятного​Главная​ более чем на​: Здравствуйте уважаемые программисты!​ текста из одной​ вниз​ создаю в экселе​ As Workbook, lngI​ сразу в глаза​ не работает, сам​ очень просто, и​в других строках​ Exit Function End​ с удалёнными переносами​Ctrl+H​

​ книге, полученной от​ для кода внутри​ кода – чаще​в группе​ ура),и мне бы​Нужно посредством VBA​

​ ячейки в другую.​​Топнули правой мышкой​​ без макросов.. но​

​ As Long, intI​ не бросилось)​ сталкивался… это связано​ без заморочек, правда​ текст может уходить​ If ‘проходим по​ строк:​, чтобы вызвать диалоговое​ клиента, или, когда​ главной процедуры​ оставлять комментарии. Комментарии​

​Выравнивание​ хотелось понять каждый​​ осуществить такую задачу:​​сам перенос по​ — формат ячеек​

​ попался проект, в​ As Integer, arrA,​combat​ именно, что Вы​ пришлось подбирать шрифт,​ за границы диапазона​ все ячейкам, проверяем​Выделите все ячейки в​ окно​ мы сами добавляем​Sub​ – это строки​

​выберите команду​​ шаг​​Есть книга Excel​ функциям:​ — выравнивание -​ котом без макроса​ arrB With Workbooks(«1.xlsm»).Worksheets(«Gesamte»)​, Советую всё-таки, вопросы,​ пытаетесь вставить данные​ необходимо было большое​ объединённых ячеек​ условие и собираем​ столбце​Найти и заменить​

​ их нажатием клавиш​и далее отступ​
​ в коде, которые​
​Перенести текст​

​Private Sub Worksheet_Change(ByVal​

office-guru.ru

Как удалить переносы строк (возвраты каретки) из ячеек в Excel 2013, 2010 и 2007

​ с несколькими листами​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ДЛСТР(AS22)​ переносить по словам​ никуда..​ arrA = .[a1].CurrentRegion.Value​ не относящиеся к​ через Range, но​ межстрочное пространство, у​при перемещении по​ текст в переменную​C​(Find and Replace).​

Удаляем переносы строк в Excel

​Alt+Enter​ увеличивается для каждого​ исполняют роль заметок​.​ Target As Range)​ и вот в​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ДЛСТР(AS22) получился, но​ — ОК​Прошу помощи!​ End With ReDim​ самой теме создавать​ Range, который на​ вас его может​​ листбоксу, если сдвинуть​​ OutText For i​

​и нажатием​Поставьте курсор в поле​.​ вложенного блока кода.​ и помогают разобраться,​Примечания:​ ‘задаем событие If​ одном из них​ слово которое попало​Скопировали пустую ячейку​Поправлю основную запись..​

​ arrB(1 To UBound(arrA,​ в отдельной теме.​ другом, неактивном листе.​ не быть и​

  • ​ форму видно как​ = 1 To​Ctrl+C​Найти​
  • ​Какой бы ни была​ Такие увеличенные отступы​ какие действия выполняет​ ​ Target.Address <> «$A$1″​
  • ​ в ячейку вводится​ в промежутке с​ В3.​Leborham​

​ 1), 1 To​​ Ибо правила…​Roman777​ будет не корректно​ распределяется текст в​ SearchRange.Cells.Count If SearchRange.Cells(i)​скопируйте данные в​(Find what) и​ причина их появления,​ помогают понять, где​ та или иная​

​Данные в ячейке будут​ Then Exit Sub​ текст(А1),но необходимо что​ 16 по 21​Топнули правой мышкой​: Пытливый, все равно​ 4) For lngI​А по вопросу,​:​​ показывать, подобрал шрифт​​ первых двух строках​ Like Condition Then​ буфер обмена.​​ нажмите​​ сейчас перед нами​ каждый отдельный блок​ часть кода.​ переноситься в соответствии​ ‘если работаем в​ бы в эту​ символ не отображается​

​ на F3 -​​ большое Вам спасибо…​ = 2 To​ я бы на​​combat​​ Ebrima​​ и как он​​ OutText = OutText​Далее выделите ячейку​Ctrl+J​ стоит задача удалить​ кода начинается и​​Комментарии не участвуют в​​ с шириной столбца,​ не в ячейке​ ячейку вводилось 73​​ не в первой(Z22)​​ Специальная вставка -​Karataev​ UBound(arrA, 1) arrB(lngI​ Вашем месте поставил​, кстати, вчера потом​далее, следующая для​

Удаляем возвраты каретки вручную

​ не умещается в​​ & TextRange.Cells(i) &​B2​

​. На первый взгляд​​ возвраты каретки, так​:(

​ заканчивается.​ процессе выполнения программы​ поэтому при ее​​ А1,то макрос не​​ символа (объединенная ячейка),​

  1. ​ не во второй​ Ширина столбцов -ОК​: Вариант с помощью​ — 1, 1)​ название отдела напротив​Удаляем переносы строк в Excel
  2. ​ ток сообразил, что​​ меня проблема, вроде​​ других​ Delimeter Next i​​, нажмите сочетание клавиш​​ поле покажется пустым,​
  3. ​ как они мешают​​Ещё один способ сделать​​ и не влияют​ изменении перенос текста​​ выполняетсяА вот дальнейшие​​ а все последующие​ ячейке(A23).​еще раз правой​ Power Query.​ = arrA(lngI, 1):​ каждого работника… А​
  4. ​ Ваш вариант тоже​​ должно все работать,​​как решить эту​ ‘выводим результаты без​Shift+F10​ но если посмотрите​ выполнять поиск фраз​ код более читаемым​ на результат работы​ будет настраиваться автоматически.​ шаги,если не трудно,разжуйте​ символы введенные в​​Заранее спасибо.​​ мышкой -специальная вставка​Удаляем переносы строк в Excel
  5. ​ИнструкцияПрежде чем тестировать,​​ arrB(lngI — 1,​​ потом уже по​ скорее всего рабочий,​Удаляем переносы строк в Excel

Удаляем переносы строк при помощи формул Excel

​ но не срабатывает​​ задачу без формул,​ последнего разделителя MergeIf​и выберите​ внимательно, то увидите​ и приводят к​ и облегчить работу​ макроса. Каждая строка,​Если текст с переносами​ пожалуйста.​ эту же ячейку​_Boroda_​

​ — форматы -ОК​ Вам нужно указать​ 2) = arrA(lngI,​ условию, при выборе​ просто Вы забыли​ код в форме​ а макросами​ = Left(OutText, Len(OutText)​Вставить​ в нём маленькую​​ беспорядку в столбце​​ с ним –​

​ начинающаяся апострофом (‘),​​ отображается не полностью,​If Len(Target) <​ после деактивации этой​

  1. ​: Дело в том,​В ячейке F3​ путь и имя​ 3) arrB(lngI -​​ начальника (или любого​​ сказать, с какого​
  2. ​ ComboBox1 иComboBox2​Roman777​ — Len(Delimeter)) End​(Insert).​ точку.​ при включении режима​ делать переносы и​
    • ​ будет считаться в​ возможно, задана точная​ 74 Then Exit​ ячейки переносились в​ что слово «работать»​ пишем формулу:​

      ​ файла 1. Для​
      ​ 1, 3) =​

    • ​ работника отдела), сверять​ листа берёте ячейки:​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub UserForm_Initialize()​:​ Function​Удалите вспомогательный столбец.​В поле​ переноса текста.​ разбивать одну длинную​ VBA комментарием. Редактор​

      ​ высота строки или​
      ​ Sub Application.EnableEvents =​

    • ​ другую ячейку(А2).​ просто не уместилось​=B3​ этого сделайте так.​

      ​ arrA(lngI, 5): arrB(lngI​
      ​ его отдел с​

    Удаляем переносы строк в Excel

  3. ​200?’200px’:»+(this.scrollHeight+5)+’px’);»>ComboBox1.List = Worksheets(«Специалисты»).Range(«A1», Worksheets(«Специалисты»).Cells(Rows.Count,​ListBox1.ColumnCount = 2​
  4. ​combat​Сцепка происходит по​Плюсы:​Заменить на​
    • ​Все три представленных способа​ строку кода на​​ VBA в Excel​​ текст находится в​​ False [A2] =​​На просторах интеренета​ по длине. Сделайте​
    • ​В ячейку В3​​Вкладка «Данные» -​​ — 1, 4)​​ отделами всех остальных,​​ «A»).End(xlUp)).Value​​ ‘​​, добрый день!​
    • ​ принципу:​

Удаляем переносы строк при помощи макроса VBA

​Создаём один раз​​(Replace With) введите​ довольно быстры. Выбирайте​ несколько коротких. В​ выделит такую строку​

​ объединенных ячейках.​​ Mid(Target, 73): [A1]​ нашел подобный код,но​

​ пошире столбец AI​ записываем проверочный текст​ Показать запросы -​ = arrA(lngI, 6)​ и только те,​

​combat​ListBox1.ColumnWidths = «0;»​Честно, не знаю​Текст 1, Текст​ – используем снова​ любое значение для​ тот, который Вам​ VBA, чтобы разбить​ зелёным цветом шрифта,​Выделите ячейки, для которых​ = Left(Target, 73)​ он не переносит​ (например) или поставьте​

​P.S.​ справа появятся два​ Next lngI With​ где отделы совпадают,​: Роман, я не​CommandButton2.Enabled = False​ как полностью граммотно​

​ 2​ и снова с​
​ вставки вместо возвратов​
​ больше подходит:​

​ строку, нужно вставить​

office-guru.ru

Перенос слов в ячейке Excel XP

​ чтобы с первого​​ требуется выровнять высоту​ Application.EnableEvents = True​ в другую ячейку,плюс​ формат ячейки -​в первоисточнике автор​ запроса.​

​ Workbooks(«Bericht.xlsx»).Worksheets(«Genehmigt») For lngI​​ добавлять в комбобокс)))​
​ сомневался, что Вы​’…………………………………….​
​ решить Вашу задачу.​Вопрос​ любой рабочей книгой.​ каретки. Обычно для​
​Удаляем все переносы строк​ символы » _»​ взгляда было понятно,​ строк.​ End Sub​ удаляет текст после​
​ Выравнивание — Автоподбор​ не раздвигал ячейку,​Щелкните правой кн.​ = 1 To​combat​ мне очередной раз​Set SRng =​ Но вы как​

CyberForum.ru

Как сделать перенос строки с использованием VBA?

​Как сделать чтобы​​Минусы:​ этого используют пробел,​ вручную, чтобы быстро​ (пробел+подчёркивание) непосредственно перед​ что это комментарий,​На вкладке​pashulka​ сообщения.​ ширины (галку Переносить​ а использовал объединенные​ мыши по первому​ UBound(arrB, 1) .Cells(lngI​: Где-то рядом, но​ поможете, и еще​ Sheets(«БазаСИ»).Range(«B1») ‘​ минимум могли бы​ разделитель был не​Требуется хотя бы​ чтобы избежать случайного​ навести порядок на​ переносом строки. Это​ который не будет​Главная​: Application.EnableEvents = False​Вот тот самый​ по словам нужно​ ячейки.​ запросу — Изменить​ + 1, 1)​ пока решение не​ раз вам большое​’…………………………………….​ использовать те же​ «, «, а​ базовое знание VBA.​ склеивания двух соседних​ одном листе.​
​ сообщает компилятору VBA,​ выполняться.​
​в группе​ ‘Временно блокируем выполнение​
​ пример:​
​ снять) — текст​Лично я считаю​ — запустится редактор​ = arrB(lngI, 1):​ нашел​
​ спасибо​Set SRng =​
​ формулы, что у​
​ перенос текста на​

​Макрос VBA из следующего​​ слов. Если нужно​Удаляем переносы строк при​ что текущая строка​Ниже продемонстрировано, как при​Ячейки​ событий приложения, чтобы​Private Sub Worksheets_Chabge(ByVal​ немноооожко уменьшится.​ что объединение -​ запросов.​ .Cells(lngI + 1,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Dim i As Variant​работает только первый​ Range(SRng, SRng.End(xlDown))​ Вас есть, просто​ следующую строчку?​ примера удаляет возвраты​ просто удалить переносы​ помощи формул и​ кода продолжается на​ помощи комментариев поясняется​нажмите кнопку​ изменение значений ячеек​ Target As Range)​А вообще-то формула​ это зло​

​Вкладка «Главная» -​​ 3) = arrB(lngI,​For i =​ вариант, при втором​N = SRng.Rows.Count​ записав их в​

​Т.е., чтобы сцепка​​ каретки из всех​ строк, оставьте поле​ настраиваем таким образом​​ следующей строке.​​ работа простой процедуры​
​Формат​ A2 и A1​​ If Target =​​ изначально не правильная.​

​0mega​​ группа «Запрос» -​ 2): .Cells(lngI +​

​ 1 To Worksheets(«Специалисты»).Cells(Rows.Count,​​ дает ошибку на​Vs = SRng.Value​ коде ВБА, например:​ происходила по принципу:​ ячеек на активном​Заменить на​

​ комплексную обработку текстовых​​Следующий пример демонстрирует, как​
​Sub​

planetaexcel.ru

Корректный перенос текста по строкам (Формулы/Formulas)

​.​​ не приводило к​ [A1] Then If​ Попробуйте в AS22​
​: именно об этом​ Расширенный редактор.​ 1, 5) =​ «A»).End(xlUp).Row​
​ запуск формы 2​ReDim SArr(1 To​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ДЛСТР(BC3)​Текст 1​ листе.​
​(Replace With) пустым.​ данных в ячейках.​ при помощи переносов​:​В группе​
​ генерации события Worksheet_Change​ Len(Target) > 73​ поставить «Желание жить​ я и предупреждал​
​В этой строке​ arrB(lngI, 3) Next​ComboBox1.AddItem Worksheets(«Специалисты»).Cells(i, «A»).Value​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Dim i As Variant​ N)​Значение, которое у​Текст 2​Sub RemoveCarriageReturns() Dim​
​Нажмите кнопку​Используем макрос VBA, чтобы​ строк можно сделать​

​’ процедура Sub​​Размер ячейки​​ Application.EnableEvents = True​​ Then Target =​
​ и работать» (без​На этом форуме​ укажите путь и​ lngI End With​Next i​For i =​ReDim Arrr(N -​ Вас в BC3​Sanja​ MyRange As Range​
​Заменить все​
​ очистить от переносов​ длинные строки кода​ для просмотра диапазона​выполните одно из​ 'Возвращаем всё на​ "" MsgBox "Извините,но​ кавычек).​ работают очень сильные​ имя файла:​ With Workbooks("Bericht.xlsx").Worksheets("Abgeschlossen") For​
​For i =​
​ 1 To Worksheets("Специалисты").Cells(Rows.Count,​
​ 1)​
​ запишите в одну​
​: Function MergeIf(TextRange As​ Application.ScreenUpdating = False​(Replace All) и​ строк несколько рабочих​ гораздо более понятными​
​ ячеек A1-A100 активного​ следующих действий:​ круги свояВсе остальные​ только 73 символа​

​Поменяйте на вот​​ макрописцы. Пусть они​Источник = Excel.Workbook(File.Contents("C:UsersUserDesktop1.xlsx"),​
​ lngI = 1​ 1 To Worksheets("Специалисты").Cells(Rows.Count,​ "A").End(xlUp).Row​For R =​ переменную, например Namess,​ Range, SearchRange As​ Application.Calculation = xlCalculationManual​ наслаждайтесь результатом!​
​ книг.​ и легко читаемыми.​ ' листа и​Чтобы автоматически выравнивать высоту​
​ строки, в принципе​ для этой ячейки"​ так:​
​ берут в руки​
​ true),​ To UBound(arrB, 1)​

​ "B").End(xlUp).Row​
​ComboBox1.AddItem Worksheets("Специалисты").Cells(i, "A").Value​
​ 1 To N​ а длину, которую​ Range, Condition As​
​ For Each MyRange​Плюсы:​Замечание:​Посмотрите на этот оператор​ поиска ячейки, содержащей​
​ строк, выберите команду​ не могут вызывать​ End If End​200?'200px':''+(this.scrollHeight+5)+'px');">=ЕСЛИ(ЕОШИБКА(ПОИСК(" ";AS22;20));AS22;ЛЕВСИМВ(AS22;ПОИСК(" ";AS22;20)))​ дирижерские палочки.​

​Затем щелкните «Готово».​​ .Cells(lngI + 1,​ComboBox2.AddItem Worksheets(«Специалисты»).Cells(i, «B»).Value​Next i​Sentence = Vs(R,​ вы пишите в​ String) Dim i​
​ In ActiveSheet.UsedRange If​Доступно использование последовательных​Первоначально термины «Возврат​If​ переданную процедуре строку​
​Автоподбор высоты строки​ вопросов, даже без​ If End SubПонимаю,что​
​Code200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕОШИБКА(ПОИСК(» «;AS22;20));»»;ПСТР(AS22;ПОИСК(» «;AS22;20);75))​Serge_007​Вкладка «Главная» -​ 1) = arrB(lngI,​Next i​For i =​ 1)​ ячейке BB15 можно​ As Long ‘если​ 0 < InStr(MyRange,​ или вложенных формул​
​ каретки» и «Перевод​:​ Sub Find_String(sFindText As​.​ волшебной клавиши F1​ от этого код​
​aleksasha888​
​: Штатными средствами это​ щелкните по верхней​
​ 1): .Cells(lngI +​
​думаю связать так:​
​ 1 To Worksheets(«Специалисты»).Cells(Rows.Count,​
​SArr(R) = «​ записать в другую​
​ диапазоны проверки и​
​ Chr(10)) Then MyRange​ для сложной проверки​
​ строки» использовались при​
​If (index =​
​ String) Dim i​Чтобы задать высоту строк,​
​Alexandrovich​ нужно отталкиваться,но поиски​
​: вроде заработало, но​ не сделать.​
​ кнопке «Закрыть и​ 1, 3) =​
​ при выборе из​ «B»).End(xlUp).Row​ » & Replace(Sentence,​
​ переменную или явно​
​ склеивания не равны​ = Replace(MyRange, Chr(10),​
​ текста в обрабатываемой​ работе на печатных​
​ 1 And sColor1​
​ As Integer ‘​ выберите команду​: Интересно,а вот такой​ результата не дают.​ потом опять слова​
​RAN​ загрузить». Редактор закроется.​
​ arrB(lngI, 2): .Cells(lngI​ ComboBox1 первой строки,​
​ComboBox2.AddItem Worksheets(«Специалисты»).Cells(i, «B»).Value​
​ «»»», «»)​ указывать в коде:​ друг другу -​

​ «») End If​​ ячейке. Например, можно​ машинках и обозначали​ = «красный») Or​ переменная типа Integer​Высота строки​ момент…если нужно раскидать​пробовал так:​ в ячейке (Z22)​: Сделать, чтобы текст​
​Проверьте, работает ли​ + 1, 5)​ назначить второй столбец​Next i​ListBox1.AddItem R​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>if len(Namess) Name=Namess​ выходим с ошибкой​
​ Next Application.ScreenUpdating =​ удалить возвраты каретки,​
​ две различных операции.​ (index = 2​ для цикла ‘For’​и введите нужное​ текст не в​Private Sub Worksheets_Chabge(ByVal​ поехали.​

​ переносился автоматически при​​ запрос. Для этого​​ = arrB(lngI, 4)​​ ComboBox2, при выборе​
​т.к. у меня​ListBox1.List(R — 1,​else​
​ If SearchRange.Count <>​ True Application.Calculation =​ а затем найти​ Любознательный читатель может​
​ And sColor1 =​
​ Dim iRowNumber As​ значение в поле​ двух строках,а в​
​ Target As Range)​
​nerv​
​ достижении конца строки​

​ справа, где имена​ Next lngI End​ ComboBox1 второй строки,​ выбор из двух​ 1) = Sentence​Name=Left(Namess,Find(» «, Namess,45)-1))​ TextRange.Count Then MergeIf​ xlCalculationAutomatic End Sub​ лишние начальные или​ самостоятельно найти подробную​

​ «синий») Or (index​​ Integer ‘ переменная​​Высота строки​​ пяти или более?т.е.вводится​ If Target =​: Как вариант макрос,​ в Экселе очень​ запросов, щелкните значок​ With End Sub​ назначить третий столбец​
​ списков, код сделал​Arrr(R - 1)​

​end if​​ = CVErr(xlErrRef) Exit​Если Вы не слишком​ конечные пробелы, или​ информацию об этом​ = 3 And​ типа Integer для​
​.​ текст в одну​ [А1] Then If​ который рассчитывает кол-во​
​ сложно. Можно сделать​
​ "Обновить".​Leborham​ ComboBox2 и так​
​ вот так...​
​ = R​
​Гдe Name -​ Function End If​ близко знакомы с​
​ лишние пробелы между​
​ в интернете.​

​ sColor1 = «зеленый»)​ хранения результата iRowNumber​Совет:​ строку (объединенную ячейку),ниже​

​ Len(Target) > 73​​ символов, которое может​​ разбивку текста из​​Если получилось, то​: Спасибо…​ далее и как​Roman777​Next​ переменная, получаемое значение​ For i =​ VBA, рекомендую изучить​ словами.​Компьютеры и программное обеспечение​ Or (index =​ = 0 ‘​
​ Кроме того, можно перетащить​​ точно такие же​ Then Target =​ поместиться в ячейке​ ячейки на несколько​ сделайте то же​Но источник 1​ сделать не пойму…​:​Lbl_SI.Caption = «Всего​ которой Вы будете​ 1 To SearchRange.Cells.Count​ статью о том,​В некоторых случаях переносы​ для работы с​
​ 4 And sColor1​ последовательно посматриваем ячейки​
​ нижнюю границу строки​ ячейки, и в​
​ InStr(1, [А1].Value, «73»,​ (объединенной) исходя из​
​ строк по завершению​ самое для второго​
​ файл..​
​RAN​combat​ СИ в базе​ записывать в ячейку​ If SearchRange.Cells(i) Like​ как вставить и​ строк необходимо удалять,​ текстами разрабатывались с​ = «коричневый») Then​
​ A1-A100, пока не​

​ в соответствии с​​ результате деактивации ячейки​:D
​ vbTextCompare) + 2​
​ размера, типа шрифта​ ввода. Макрос можно​
​ запроса "Abgeschlossen".​Bericht должен получать​
​: Правильно! Зачем искать​

​, я думаю что​​ » & «​​ M15​​ Condition Then If​ выполнить код VBA​ чтобы в дальнейшем​
​ учётом особенностей печатных​​При помощи переносов строк​ будет найдено значение​ высотой текста в​ текст раскидывается по​ [А2].Value = Range([А1].Value,​
​ и т.п.​ прицепить на кнопку​Теперь, чтобы извлекать​ данные из файла​ там, где потерял,​ второй мб опять​ » & N​Для ячейки A17​ MergeIf <> Empty​ в Excel.​ использовать текст в​ машинок. Вот почему​ тот же оператор​ ‘sFindText’ For i​

​ строке.​​ этим строкам по​ Len([А1].Value) — Target​Еще вариант: начинать​
​ (как здесь) или​
​ данные из файла​ 1 и увидев​ когда там, где​
​ где-то неправильно был​
​ & " ед."​
​ можно по аналогии​ Then MergeIf =​Урок подготовлен для Вас​
​ качестве аргументов функций,​
​ теперь для обозначения​

​If​ = 1 To​Новую строку текста можно​ заполненности,а не по​ + 1) MsgBox​ с новой строки​ на событие Worksheet_Change.​ 1, Вам надо​ (к примеру Genehmigt,​ светло удобнее.​

​ применён… сразу замечу,​​’ComboBox1.List = Worksheets(«Специалисты»).Range(«A1»,​ формулу записать в​ MergeIf & TextRange.Cells(i)​ командой сайта office-guru.ru​

excelworld.ru

VBA: перенос данных в другую таблицу по определенным словам

​ не внося изменения​​ разрыва строки используют​
​может быть записан​ 100 If Cells(i,​
​ начать в любом​ количеству символов. Возьмем​ «Часть текста перенесено​ и заполнять все​ Можно добавить удаление​ только обновлять.​
​ переносил данные в​
​Leborham​ что если у​ Cells(Rows.Count, «A»).End(xlUp)).Value​ коде ВБА.​ & vbCrLf Else​
​Источник: https://www.ablebits.com/office-addins-blog/2013/12/03/remove-carriage-returns-excel/​ в исходные ячейки.​ два различных непечатаемых​ вот так:​ 1).Value = sFindText​ месте ячейки.​
​ к примеру 5​ в строку ниже»​ в одной объединенной​ исходной ячейки. Подкраска​
​Обновлять можно еще​ файл Bericht во​

​: Добрый день!​​ Вас данные в​’ComboBox2.List = Worksheets(«Специалисты»).Range(«B1»,​Cheshir0067​
​ MergeIf = TextRange.Cells(i)​Перевел: Антон Андронов​ Результат можно использовать,​ символа:​

​If (index =​​ Then ‘ найдено​Дважды щелкните ячейку, в​ строк.Пользователь вводит текст​ End If End​ ячейке.​ разделенного текста сделана​ отсюда: вкладка «Данные»​ вкладку Genehmigt (1​
​Прошу помощи.. очень​ одинаковых строках в​ Cells(Rows.Count, «B»).End(xlUp)).Value​
​: Имхо всё не​ & vbCrLf End​Автор: Антон Андронов​
​ например, как аргумент​Возврат каретки​ 1 And sColor1​ совпадение с переданной​ которую требуется ввести​ в первую строку​ If End SubНо​Tamy​ для удобства при​ — Обновить все.​ (колонки 1, 3,​ срочно!​ столбце «А» и​End Sub​ так страшно:​ If End If​pestov​ функции​(Carriage return, CR​ = «красный») Or​ строкой ‘ сохраняем​ разрыв строки.​ текст,так сказать не​ код не работает.Помогите,пожалуйста​: Здравствуйте! У меня​ разбивке готового документа.​Ambioz​ 5), если Genehmigt​Есть 2 Таблицы.​ «B», можно было​тот код который​Самое главное определиться​ Next i End​: Господа, каким образом​ПРОСМОТР​ или ASCII код​ _ (index =​ номер текущей строки​Совет:​ глядя на экран,а​ советом.​ вопрос, который, наверное,​ Разделяет текст выделенной​: Здравствуйте, помогите, пожалуйста,​ в Bericht/Genehmigt попали​ В первой (1)​ бы обойтись и​

​ отключен, в самом​​ с размером и​
​ Function​ можно задать программно​
​(LOOKUP).​ 13) и​ 2 And sColor1​ и выходим из​ Можно также выделить ячейку,​ тыча чуть ли​pashulka​ вас рассмешит. Как​ ячейки. По умолчанию​ решить проблему:​ данные в колонки​ все данные, во​
​ одним циклом. И​ конце​ шрифтом чтобы влазил​
​Kuzmich​ из модуля перенос​Минусы:​
​Перевод строки​

​ = «синий») Or​​ цикла iRowNumber =​

​ а затем нажать​​ не носом в​:​ настроить, чтобы слова​ установлена длинна строки​Как сделать, что​ Datum, 3,5 )​ второй (Bericht) 2​ вообще​combat​
​ в ячейку и​: В ячейке включить​ слов в определенной​Потребуется создать вспомогательный​​(Line feed, LF​
​ _ (index =​ i Exit For​​ клавишу F2.​​ клавиатуру.По прошествии ввода​
​Строго​ в ячейке переносились,​ 116 символов. Можно​ бы текст, достигнув​+ данные на​
​ листа (Genehmigt u​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Worksheets(«Специалисты»).Cells(Rows.Count, «A»).End(xlUp).Row​: Как заставить работать​
​ задать конечное колличество​ перенос по словам​ ячейке или диапазоне​ столбец и выполнить​ или ASCII код​ 3 And sColor1​

​ End If Next​​Дважды щелкните в ячейке​ текста переводит курсор​в​ а не «залазивали»​ задать другую длинну.​ конца ячейки автоматически​ сервере.. нужен путь​ Abgeschlossen).​
​- просто определяет​
​ ComboBox на форме,​

​ символов (ограничение) для​​ Dim OutText As​ ячеек… HELP!!!​

​ множество дополнительных шагов.​​ 10). В Windows​ = «зеленый») Or​
​ i ‘ сообщение​ то место, куда​ или же активирует​модуль листа​ на другую ячейку​
​_Boroda_​ переносился на другую​ к файлу​Надо чтобы из:​
​ последнюю из заполненных​ беря данные с​ показа в первой​ String Delimeter =​EsKor​
​Добавьте вспомогательный столбец в​ используются оба символа​ _ (index =​
​ во всплывающем окне​ нужно вставить разрыв​ другую ячейку, текст​
​, где нужно перенести​Serge_007​
​: Тот же файл,​
​ строку?​И если есть​1 (колонки 1,​ строк для столбца​
​ листа в книге,​ ячейке.​ Chr(10)​: Очень просто:​ конце данных. В​
​ вместе, а в​ 4 And sColor1​ сообщает пользователю, ‘​ строки, и нажмите​
​ введенный в первую​ лишний текст :​: См. вложение​ что у уважаемого​
​Serge_007​ возможность без открытия​ 3, 5), если​

planetaexcel.ru

Автоматический перенос текста на другую строку

​ «А» и думаю,​​ а форма привязана​Пример берёт колличество​
​excel_pl​Selection.WrapText = True​ нашем примере он​ системах *NIX применяется​ = «коричневый») Then​

​ найдена ли строка,​​ сочетание клавиш ALT+ВВОД.​
​ строку раскидывается по​Private Sub Worksheet_Change(ByVal​Tamy​ RANа, только все​: Здравствуйте.​
​ файла 1​ Genehmigt отправить данные​

​ что лучше всего​​ к др. листу,​​ символов из ячейки​​: А каких-нибудь спец.​

​ ‘для текущей ячейки​​ будет называться​ только перевод строки.​

​Если рассмотренный оператор​​ и если найдена​​Начиная практиковаться в написании​​ пяти последующим строкам​ Target As Range)​: спасибо за помощь!!!​ это без макросов,​Использовать Word. Excel​

​Заранее спасибо!​​ в «Bericht/Genehmigt» в​ не пересчитывать его​ у меня по​
​ BB15 и разбрасывает​
​ символов вместо запятой​Cells(1, 3).WrapText =​
​1 line​Будьте внимательны:​
​If​ – сообщает номер​ кода VBA, очень​
​ по заполненности.А если​ If Target.Address =​Maksim156​ формулами. К сожалению,​
​ — это не​Leborham​ колонки Datum, 3,5​
​ на каждом шаге​ чему то не​ по строкам.​ для строчки «​ True ‘для ячейки​
​.​В Excel встречаются​
​разбит на четыре​ строки If iRowNumber​ важно с самого​ каким-то чудом пользователь​
​ «$A$1» Then Application.EnableEvents​: А если слова​ при изменении ширины​
​ текстовый редактор и​: выдает ошибку 9​
​1 (колонки 1,​
​ цикла, а запихнуть​ работает​
​В Вашем примере​
​Delimeter = «, «​ в 1-й строке​В первой ячейке вспомогательного​ оба варианта. При​
​ строки, то составляющие​ = 0 Then​ начала выработать хорошие​

​ оторвал нос от​​ = False Dim​ переносятся, но ячейка​

​ столбца обновляется не​ его возможности в​Пытливый​ 3, 6) ,​ в переменную (предварительно​

​пребывал по всякому,​​ надо заменить в​» нету?​

​ и 3-ем столбце​​ столбца (C2) введите​ импорте из файлов​ его блоки c​ MsgBox «Строка «​ привычки в оформлении​ клавиатуры и глянул​ t$, i&: t$​ не раздвигается и​ автоматически, а через​ этом направлении минимальны.​: 1. Ответ рисуем​ если Abgeschlossen отправить​ посчитав 1 раз)​ работает только если​ Private Sub ListBox1_Change():​например, что-нибудь в​Вообще такие вещи​ формулу для удаления/замены​.txt​ условиями видны гораздо​ & sFindText &​ кода, чтобы в​

​ на монитор (увидел​​ = Target.Value For​ видно только начало​ F9​ЗЫ Вероятно макросами​ под файл-пример (файлы-примеры).​ данные в Bericht/Abgeschlossen​ и потом уже​ активен лист с​200?’200px’:»+(this.scrollHeight+5)+’px’);»>​

​ духе :​​ легко получаются с​

​ переносов строк. Ниже​​или​ более наглядно. Этот​ » не найдена»​

​ дальнейшем написанный код​​ много слов и​ i = 1​

​ текста​​0mega​ можно…​
​ Серверы там, открытый/закрытый​ в колонки Datum,​ использовать из памяти,​
​ которого берутся данные,​Worksheets(«РСИ»).Cells(3, 55) =​rn​

​ помощью макрорекордера: запустите,​​ приведены несколько полезных​.csv​

​ пример иллюстрирует, как​​ Else MsgBox «Строка​ было легко читать​ букв за пределами​ To Len(t) Step​_Boroda_​: маэстро !​0mega​ — в задании​

​ 3,5​​ так что сам​ все указано в​ Lbl.Caption​;​ выполните действия, остановите,​
​ формул для различных​данные обычно содержат​
​ аккуратное оформление может​
​ " & sFindText​ и понимать, как​ строки (ячейки)),деактивировал ячейку,текст​ 73 Target.Offset(i ​: Формат ячейки, вкладка​Serge_007​:​ нет - не​
​Данные всегда обновляются​

​ себя поправлю:​​ сообщении 4, там​На:​Sanja​ посмотрите содержимое макроса,​ случаев:​ возвраты каретки и​ сделать код более​ & " найдена​ он работает.​ раскидался,но необходимо продолжить​ 73) = Mid(t,​ "Выравнивание" поставьте галку​
​: Однако задачу ТС​Ambioz​ рисуем. Ну, раз​ в файле "1"​Код200?'200px':''+(this.scrollHeight+5)+'px');">Dim i as​ же и файл​
​Код200?'200px':''+(this.scrollHeight+5)+'px');">​: Kuzmich, же Вам​
​ если нужно отредактируйте.​
​Эта формула подходит для​

​ переводы строки. Когда​​ читаемым и привести​ в ячейке A»​В процессе написания кода,​ ввод текста.Пример текст​

​ i, 73) Next​​ «Переносить по словам».​ без макросов решить​, здравствуйте​ не сказали, значит,​ и находятся на​ long​200?’200px’:»+(this.scrollHeight+5)+’px’);»>ComboBox1.List = Worksheets(«Специалисты»).Range(«A1», Cells(Rows.Count,​
​numb = Worksheets(«РСИ»).Cells(15,​ показал​Вот для диапазона​ использования с комбинациями​ перенос строки вводится​

excelworld.ru

Перенос слов в ячейке

​ в результате к​​ & iRowNumber End​ программист может иметь​ заполнил первую строку​ Application.EnableEvents = True​Если это не​ всё-же нельзя.​row​

​ не надо было.​​ сервере закрытом.​

​Dim i_n as​​ «A»).End(xlUp)).Value​

​ 54)’ Считаем колличество​​Юрий М​ и попробуйте сами:​ возврат каретки /​ вручную нажатием​ меньшему количеству ошибок​

​ If End Sub​​ совершенно чёткое представление​ и то что​ End If End​
​ поможет, то показывайте​Ambioz​: 0mega как Вы​

​ Ничего личного.​​Заранее спасибо экспертам​ long​если активен лист​ символов к отображению​: excel_pl, Вы не​ запустите макрорекордер, выделите​ перенос строки, характерными​Alt+Enter​ и путаницы.​Не расстраивайтесь, если какую-то​ о том, что​ не влезло в​ Sub​

​ Ваш файл​​: Нашел решение без​ это сделали, подскажите​2. Файл 1.xlsm​ в VBA!​i_n = Worksheets(«Специалисты»).Cells(Rows.Count,​ «РСИ» не работает,​

​Worksheets(«РСИ»).Cells(15, 13).FormulaR1C1 =​​ отписались в своих​ диапазон, вызовите ‘формат​ для Windows и​

excelworld.ru

Перенос лишнего текста из одной ячейку в другую

​, Excel вставляет только​​Урок подготовлен для Вас​
​ часть кода, показанного​ за код он​
​ ячейку перенеслось во​Если же переносить​Maksim156​ макросов​Ambioz​ открыть. На вопрос​Leborham​ «A»).End(xlUp).Row​ если лист «Специалисты»​ Left(Lbl.Caption, numb)’ Записываем​ старых темах, а​ ячейки’, установите ‘перенос​ для UNIX.​ символ перевода строки.​ командой сайта office-guru.ru​
​ выше, не удалось​ пишет и как​ вторую,»входит» во вторую​ текст по 73​: ячейка расширяется когда​0mega​
​:​ о разрешении макросов​
​: перенос данных в​For i=1 to​ работает, в общем​ numb символов с​ уже создали новую.​ по словам’, остановите​=ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;СИМВОЛ(13);»»);СИМВОЛ(10);»»)​ Если же файл​Источник: http://www.excelfunctions.net/VBA-Code-Presentation.html​ понять – далее​ этот код должен​ строку и продолжает​ символа не нужно,​ там просто пишу​
​: просто как 5​
​0mega​ -​ другую таблицу по​ i_n​ надо, что бы​ лева в первую​ Или ответы не​ макрорекордер, посмотрите его​=SUBSTITUTE(SUBSTITUTE(B2,CHAR(13),»»),CHAR(10),»»)​.csv​Перевел: Антон Андронов​ в учебнике мы​ работать. Но нужно​ ввод текста. Вот​ то ещё проще​ текст и потом​ копеек …​

​- маленько не​​разрешить.​​ определенным словам…​​ComboBox1.AddItem Worksheets(«Специалисты»).Cells(i, «A»).Value​​ работало при активном​​ ячейку​ интересуют?​
​ содержимое и т.д.​Следующая формула подходит для​получен от поклонника​Автор: Антон Андронов​ рассмотрим эту тему​ позаботиться и о​ как бы так.Помогите,знаниями,пожалуйста.​ :​ ставлю галочку «Переносить​я знаю только​ то. Текст надо​3. Файл Bericht.xlsx​чтобы данные из​ComboBox2.AddItem Worksheets(«Специалисты»).Cells(i, «B»).Value​ листе «РСИ»​
​Worksheets(«РСИ»).Cells(17, 1) =​excel_pl​excel_pl​ замены переноса строки​ Linux, Unix или​
​Эта инструкция познакомит Вас​ подробнее. Цель приведённого​ том, чтобы, вернувшись​pashulka​Private Sub Worksheet_Change(ByVal​ по словам», а​ одного Алексея. Но​ распределить не в​ открыть​ одной таблицы переносились​ ‘ если для​Roman777​

​ Right(Lbl.Caption, Len(Lbl.Caption) -​​: Вопрос решён.​: Код сцепляет столбец​ любым другим символом​ другой подобной системы,​ с тремя способами​ примера – продемонстрировать,​ к работе спустя​: Лучше бы Вы​ Target As Range)​ у меня в​ он макровед.​ одной ячейке, а​
​в том же сеансе​ в другую в​ столбцов «А» и​:​ numb)’ Забираем оставшиеся​Всем спасибо.​ по критериюСкрытый текст​ (например, «, »​ то готовьтесь к​ удалить возвраты каретки​ как при помощи​
​ полгода, не пришлось​ опубликовали файл-пример, где​ If Target.Address <>​ ячейке форума стоит​А вы не​ по строкам.​Excel​ разные листы​

​ «B» данные лежат​​combat​ символы во вторую​combat​ Option Compare Text​ – запятая +​ встрече только с​ из ячеек в​ комментариев поясняется каждый​ ломать голову, пытаясь​ будет видно, что​ «$A$1» Then Exit​ и когда все​ знаете nick автора​0mega​

​4. В файле​​Пытливый​ в одних и​, Добрый день!​ ячейку​: Всем доброго времени​ Function MergeIf(TextRange As​ пробел). В таком​ символом перевода строки.​ Excel. Вы также​ блок кода.​ понять, что должен​ было до ввода,​ Sub If Len(Target)​ слова не входят​ ?​: вроде бы в​ 1.xlsm на листе​: Попробуйте. Макросы должны​ тех же строках,​Я не знаю​combat​ суток, помогите решить​ Range, SearchRange As​ случае строки не​Плюсы:​ узнаете, как заменить​Часто программисты ленятся добавлять​ делать этот код.​ и что стало​ < 74 Then​ то они переносятся​Serge_007​ файле я уже​ — фигура с​ быть разрешены. В​ иначе надо делать​ что вы пытаетесь​: Я пошел совсем​ задачу​ Range, Condition As​ будут объединены и​Этот способ самый​ символы переноса строки​ подробные комментарии к​ Ещё более неприятная​ после.​

​ Exit Sub Application.EnableEvents​​ вниз, а ячейка​: Это тоже не​ все написал ?!​ побуждающей надписью. Проследовать​ файле 1 на​ второй цикл, как​

CyberForum.ru

​ сделать когда пишите:​

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Уважаемые мастера! Помогите составить макрос для автоматического переноса текста ПО СЛОВАМ при заполнении ячейки по ширине на следующую ячейку (вниз). Даже не знаю, с чего начать — предположительно с подсчёта допустимого количества символов в ячейке (ДЛСТР на VBA), которое потом при активации макроса вводится в InputBox.
Скорее всего придётся задать текстовый диапазон и первую ячейку, с которой начнётся вставка с переносами

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

наводящий вопрос:
а что должно произойти при увеличении размера шрифта?
наводящий вопрос:2
а при изменении ширины столбца?

Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Самый простой вариант: изменение условий переноса (новая длина строки). То есть — изменил шрифт/размеры столбцов, задай заново условие переноса (контроль наличия изменений, конечно, лучше поручить VBA)

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

Посмотрите

здесь

, на дружественном форуме решали

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

MBT — огромное спасибо! Особенно за файл Wrap )))) Только вот не получается применить его, как в новом примере — чтобы проверял строку снизу на пустоту и, если не пустая, сдвигал вниз…

Изменено: Jack_Famous10.11.2015 08:15:45

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#6

10.11.2015 15:16:02

Помогли допилить. Пользуйтесь на здоровье.
WrapDown. Переносит  на ячейку вниз. Временный столбец — следующий от изпользуемого (переменная в коде «myEC»)

Код
Sub WrapDown()
   Dim c As Range, myRa As Range
   Dim s As String
   Dim arr As Variant
   Dim i As Integer
   Dim d As Variant
   Application.ScreenUpdating = False
   
   Set myRa = Selection
   myC = myRa.Column
   myE = myRa.Row - 1
   myR = myRa.Row
   myEC = myC + 1
   Columns(myEC).EntireColumn.Clear
   For Each r In myRa.Rows
       myE = myE + 1
       d = Cells(r.Row, myC).ColumnWidth * 1.05 'ширина первоначальной ячейки (несколько увеличена)
       arr = Split(Cells(r.Row, myC), " ")
       s = ""
       For i = 0 To UBound(arr)
          s = s & arr(i) & " "
          
          Cells(myE, myEC) = s
    
          Cells(myE, myEC).EntireColumn.AutoFit
    
          If Cells(myE, myEC).ColumnWidth > d Then
             Cells(myE, myEC).ColumnWidth = d
             Cells(myE, myEC).Value = Left(s, Len(s) - (Len(arr(i)) + 1))  'без последнего слова
             i = i - 1 'т.к. слово выкинули
             
             '---- переход в другую ячейку ----
             myE = myE + 1
             s = ""
          End If
       Next i
   Next
   myRa.Delete Shift:=xlUp
   Range(Cells(myR, myEC), Cells(myE, myEC)).Copy
   Cells(myR, myC).Insert Shift:=xlDown
   Columns(myEC).EntireColumn.Clear
   Application.ScreenUpdating = True
End Sub

Изменено: Jack_Famous14.11.2015 11:40:14

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#7

14.11.2015 11:46:55

Модификация WrapDownWithDate. Используется в случае, если нужна связь со столбцом слева (даты например) — он сцепляет исходный и левый столбцы, переносит и расцепляет обратно, т.к. обычный WrapDown при переносе не сдвигает строку целиком и из-за этого нарушается связь(((( Кто знает, как поправить — отпишитесь… Временный столбец — 10 (переменная в коде «myEC»)

Код
Sub WrapDownWD()
   Dim c As Range, myRa As Range
   Dim s As String
   Dim arr As Variant
   Dim i As Integer
   Dim d As Variant
   Application.ScreenUpdating = False
   
   Set myRa = Selection
   myC = myRa.Column
   myE = myRa.Row - 1
   myR = myRa.Row
   myEC = 10
   Columns(myEC).EntireColumn.Clear
   For Each r In myRa.Rows
       myE = myE + 1
       d = Cells(r.Row, myC).ColumnWidth * 1.05 'ширина первоначальной ячейки (несколько увеличена)
       arr = Split(Cells(r.Row, myC), " ")
       s = ""
       Cells(myE, myEC - 1) = Cells(r.Row, myC - 1)
       For i = 0 To UBound(arr)
          s = s & arr(i) & " "
          
          Cells(myE, myEC) = s
    
          Cells(myE, myEC).EntireColumn.AutoFit
    
          If Cells(myE, myEC).ColumnWidth > d Then
             Cells(myE, myEC).ColumnWidth = d
             Cells(myE, myEC).Value = Left(s, Len(s) - (Len(arr(i)) + 1))  'без последнего слова
             i = i - 1 'т.к. слово выкинули
             
             '---- переход в другую ячейку ----
             myE = myE + 1
             s = ""
          End If
       Next i
       
   Next
   myRa.Delete Shift:=xlUp
   Range(Cells(myR, myC - 1), Cells(myE, myC - 1)).Delete Shift:=xlUp
   Range(Cells(myR, myEC - 1), Cells(myE, myEC)).Copy
   Cells(myR, myC - 1).Insert Shift:=xlDown
   Range(Cells(myR, myEC - 1), Cells(myE, myEC)).Clear
   Application.ScreenUpdating = True
End Sub

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Уважаемые форумчане! Прошу вашей помощи в корректировании макроса WrapDown (НЕ WrapDownWD). Дело обстоит следующим образом: на данный момент при переносе строк он раздвигает только ЯЧЕЙКИ АКТИВНОГО СТОЛБЦА. Соответственно, если справа/слева находятся какие-либо заполненные ячейки, они остаются на месте и связь в таблице нарушается, (а если запускать его в «умной» таблице, то вообще выдаёт ошибку по этой же причине — см. скрин).
Кроме того, макрос использует временный столбец (переменная myEC в коде), который немного портит процесс (но это не критично, т.к. его можно убрать подальше)…

Отсюда первый и самый главный вопрос — как сделать, чтобы макрос переносил СТРОКИ ЦЕЛИКОМ при заполнении?
И второй, менее важный, можно ли избавиться от создания временных столбцов в макросе без потери его производительности (тестить, конечно, буду сам)

P.S.: макрос WrapDownWD — частное решение данной проблемы для значений СЛЕВА от форматируемого текста (сцепляет, переносит, расцепляет)

Изменено: Jack_Famous06.04.2016 11:52:11

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Вопрос модераторам: в данном случае (тема была долгое время неактивна) нужно создать новую с ссылкой на неё или продолжать в ней же?
И что делать, если никто не ответит? И будет ли кросс в данном случае считаться «обесцениванием усилий» (естественно, ресурсы будут связаны ссылками, чтобы желающие ознакомились)?

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

То, что тема была долгое время в спячке, не мешает продолжать в ней — ведь вопрос тот же? Если никто не ответит — ждать ещё ))

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Юрий М

здравствуйте)) в такие моменты понимаешь людей с кроссами  :)  (не тех, которые СОЗДАЮТ тему СРАЗУ на нескольких ресурсах, а которые связывают сайты ссылками по общей теме) с другой-то стороны, пользователи НЕСКОЛЬКИХ ресурсов смогут получить доступ к найденному решению  ;)

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Всем доброго дня. Вижу, желающих меньше, чем хотелось бы)))
У меня за сутки появилась одна мысль: есть макрос, который разделяет ячейки в Selection ВНИЗ по выбранному символу-разделителю (типа текст-по-столбцам, только с транспонированием). Так вот он при разделении вниз переносит строку ЦЕЛИКОМ, как надо, то есть, чтобы он был применим для данной задачи, нужно как-то расставить разделители в тех местах, где текст ВИЗУАЛЬНО переносится на следую строку внутри ячейки и уже по этому разделителю перенести рабочим способом…

Публикую кросс

http://www.excelworld.ru/forum/10-22678-1#182737

. Есть решение с дополнительным листом. Есть практически готовое решение.
Ссылки на похожие решения…

http://www.excelworld.ru/forum/2-890-1
http://www.excelworld.ru/forum/10-13118-1
http://www.programmersforum.ru/showthread.php?t=289628&page=2

16:45. Дорогой дневник  :D  пока всё, что получилось выжать из TexttoRows — это убрать ручной ввод ширины столбца, теперь он определяется автоматически (взято из Wrap). Теперь диллема: или продолжать совершенствовать TexttoRows (осталось: 1. научить перебирать диапазон ячеек из Selection и 2. научить его разделять текст с АКТИВНОЙ ячейки, а не следующей) или взяться за WrapDown (но там страшно, т.к. менять много и пока непонятно как)

Изменено: Jack_Famous19.04.2016 15:37:08

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

RAN

, спасибо за отклик :) посмотрел тему и побегал по ссылкам внутри… Текст по столбцам подметил и сохранил (может пригодиться), однако мой вопрос там решён не был, увы…подробные комментарии и обновления в посте №12. Если кратко — пытаюсь слепить Франкенштейна из 2 макросов: WrapDown работает в диапазоне, но не сдвигает строки целиком при разбивке (из-за чего нарушается построчная связь, а «умные» таблицы выдают соответствующую ошибку) и иногда прям несравненно долго тупит (причина не выяснена) ну и ещё у него доп столбец, хотя явно можно обойтись без него… Второй

TexttoRows

(вы, скорее всего, его видели) замечательно переносит строки целиком и даже получилось научить его самостоятельно определять ширину столбца, но, зараза, работает с 1 (активной) ячейкой. Цикл соорудить так и не удалось…и даже не близко  :(

Изменено: Jack_Famous08.04.2016 10:51:26

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#15

08.04.2016 10:42:26

Дорогой дневник! Сегодня я добрался до макроса, который показался на первый взгляд самым пригодным, но на деле оказался «тёмной лошадкой». Принципы его работы мне неведомы, а результат рандомен до безобразия)))) есть 4 варианта, что он творит, в зависимости от ситуации  :D Отвязать его от диапазона A1:С к текущему через Selection.CurrentRegion.Select ни к чему хорошему не привели, а когда я захотел «запилить» простой цикл через For Each Cell In Selection … Next Cell, макрос покрутил пальцем у виска и сказал, что VBA вообще не моё, моим никогда не было и, скорее всего, уже никогда и не станет. Ещё попросил поскорее закрыть редактор и больше никогда его не открывать  :D

Код
Sub ertert()
Dim x, i&
With Range("A1:C" & Cells(Rows.Count, 1).End(xlUp).Row)
    x = .Value: .Offset(1).ClearContents
End With
Application.DisplayAlerts = False
For i = 2 To UBound(x)
    With Cells(Rows.Count, 2).End(xlUp)(2, 1)
        .Offset(, -1).Resize(, UBound(x, 2)).Value = Array(x(i, 1), x(i, 2), x(i, 3))
        .Justify
    End With
Next i
Application.DisplayAlerts = True
End Sub

2016-05-04. 11:00. Ссылка на родственную

тему

2016-05-05. 10:00. Найдено решение в родственной теме! Ликуйте и возрадуйтесь! За решение спасибо

Михаилу Лебедев

у!)))

Изменено: Jack_Famous05.05.2016 10:01:03

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

Home / VBA / VBA Wrap Text (Cell, Range, and Entire Worksheet)

In VBA, there is a property called “WrapText” that you can access to apply wrap text to a cell or a range of cells. You need to write code to turn it ON or OFF. It’s a read and writes property, so you can apply it, or you can also get it if it’s applied on a cell.

In this tutorial, we will look at different ways of applying wrap text using a VBA code.

Wrap Text to a Cell using VBA

Use the following steps to apply Wrap Text using a VBA Code.

  1. Define the cell where you want to apply the wrap text using the range property.
  2. Type a dot to see the list of the properties and methods for that cell.
  3. Select the “WrapText” property from the list.
  4. Enter the equals sign “=” and type TRUE to turn on the wrap text.
Sub vba_wrap_text()
  Range("A1").WrapText = True
End Sub

You can also specify a cell using the following way.

Cells(1, 1).WrapText = True

Wrap Text to a Range of Cells

And if you want to apply wrap text to an entire range then you need to specify the range instead of a single cell.

Range("A1:A5").WrapText = True

You can also apply it to the used range (selection of the worksheet where you have entered data) by using the “UsedRange” property.

Worksheets("Sheet1").UsedRange.WrapText = True
ActiveSheet.UsedRange.WrapText = True

In the above code’s first line, you have specified the worksheet and then the “UsedProperty” to wrap the text. In the second line, you have the active sheet’s used range. But both lines work in the same way.

Here are a few more examples that you need to know:

  • Non-continues cells
  • Entire Row
  • Entire Column
  • Named Range
Range("A1:A10,C1:C10").WrapText = True
Range("A:A").WrapText = True
Range("1:1").WrapText = True
Range("myRange").WrapText = True

To refer to the entire worksheet you need to use the Cells property as you have in the following code.

Cells.WrapText = True
Worksheets("Sheet1").Cells.WrapText = True

The first line of code refers to the active sheet and the second line to the worksheet “Sheet1”. You can also use a loop using FOR EACH (For Next) to loop through all the worksheets of the workbook and apply the wrap text on all the cells.

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
   Cells.WrapText = True
Next ws

In the above code, you have “ws” as a variable and then For Each Loop loops through all the worksheets from the workbook and applies to wrap text to the entire worksheet using Cells.

Turn OFF WrapText

As you have seen you need to turn on the WrapText property, and in the same way you can turn it off by using add declaring FALSE.

Range("A1").WrapText = False

Note: There’s one thing you need to understand if you have a value in a cell and the width of the cells is enough to store that value, then even if you apply wrap text, Excel won’t shift the content to the next line.

More Tutorials

    • Count Rows using VBA in Excel
    • Excel VBA Font (Color, Size, Type, and Bold)
    • Excel VBA Hide and Unhide a Column or a Row
    • Excel VBA Range – Working with Range and Cells in VBA
    • Apply Borders on a Cell using VBA in Excel
    • Find Last Row, Column, and Cell using VBA in Excel
    • Insert a Row using VBA in Excel
    • Merge Cells in Excel using a VBA Code
    • Select a Range/Cell using VBA in Excel
    • SELECT ALL the Cells in a Worksheet using a VBA Code
    • ActiveCell in VBA in Excel
    • Special Cells Method in VBA in Excel
    • UsedRange Property in VBA in Excel
    • VBA AutoFit (Rows, Column, or the Entire Worksheet)
    • VBA ClearContents (from a Cell, Range, or Entire Worksheet)
    • VBA Copy Range to Another Sheet + Workbook
    • VBA Enter Value in a Cell (Set, Get and Change)
    • VBA Insert Column (Single and Multiple)
    • VBA Named Range | (Static + from Selection + Dynamic)
    • VBA Range Offset
    • VBA Sort Range | (Descending, Multiple Columns, Sort Orientation
    • VBA Check IF a Cell is Empty + Multiple Cells

    ⇠ Back to What is VBA in Excel

    Helpful Links – Developer Tab – Visual Basic Editor – Run a Macro – Personal Macro Workbook – Excel Macro Recorder – VBA Interview Questions – VBA Codes

    pestov

    1

    16.12.2008, 15:57. Показов 39662. Ответов 6


    Студворк — интернет-сервис помощи студентам

    Господа, каким образом можно задать программно из модуля перенос слов в определенной ячейке или диапазоне ячеек… HELP!!!

    3 / 3 / 0

    Регистрация: 03.12.2008

    Сообщений: 17

    18.12.2008, 10:07

    2

    Очень просто:
    Selection.WrapText = True ‘для текущей ячейки
    Cells(1, 3).WrapText = True ‘для ячейки в 1-й строке и 3-ем столбце

    Вообще такие вещи легко получаются с помощью макрорекордера: запустите, выполните действия, остановите, посмотрите содержимое макроса, если нужно отредактируйте.
    Вот для диапазона и попробуйте сами: запустите макрорекордер, выделите диапазон, вызовите ‘формат ячейки’, установите ‘перенос по словам’, остановите макрорекордер, посмотрите его содержимое и т.д.



    2



    0 / 0 / 0

    Регистрация: 19.01.2019

    Сообщений: 3

    19.01.2019, 09:46

    3

    Подниму тему, потому что в VBA не силен и куда добавить «враптекст» не знаю. VBA 7 версии

    Перенос слов в ячейке Excel XP



    0



    6875 / 2807 / 533

    Регистрация: 19.10.2012

    Сообщений: 8,562

    19.01.2019, 12:49

    4

    «враптекст» можно добавить в код форматирования диапазона.
    Но какая связь этого с скриншотом — не понятно.



    1



    Кобац

    0 / 0 / 0

    Регистрация: 19.01.2019

    Сообщений: 3

    24.01.2019, 14:05

    5

    М, враптекст нужен для всех ячеек листа1.
    Worksheets(«Sheet1»).Range(«B2»).WrapText = True такую строку нашел на офсайте в Помощи.
    Но это для ячейки В2.
    Команду вбивать в самом низу Окна Кода под последним End Subом? То есть для переноса слов в ячейке Должно быть что-то вроде:

    Visual Basic
    1
    2
    3
    4
    5
    6
    
    Private Sub ComboBox4_Change()
    End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    End Sub
    Private Sub Worksheets("Sheet1").Range("À1:Z999").WrapText = True
    End Sub

    ??
    Перетыкал разные варианты ввода свойства переноса, но,честно, учить новый язык ради одной строки некогда

    Миниатюры

    Перенос слов в ячейке Excel XP
     

    Вложения

    Тип файла: zip Реестр МФЦ тест.zip (762.8 Кб, 4 просмотров)



    0



    Казанский

    15136 / 6410 / 1730

    Регистрация: 24.09.2011

    Сообщений: 9,999

    24.01.2019, 15:49

    6

    Цитата
    Сообщение от Кобац
    Посмотреть сообщение

    враптекст нужен для всех ячеек листа1

    Это обязательно программно делать?
    Выделите все ячейки (кнопка на пересечении ЗАГОЛОВКОВ строк и столбцов, Ctrl+1 — выравнивание — переносить по словам.
    А если программно, то

    Visual Basic
    1
    
    cells.WrapText =true

    после создания листа/книги.



    1



    Кобац

    0 / 0 / 0

    Регистрация: 19.01.2019

    Сообщений: 3

    27.01.2019, 08:04

    7

    Извиняюсь, недавно разобрался, что форма combobox к ячейкам не подвязывается. Перенос текста внутри формы комбобокса, что-то вроде этого..

    Visual Basic
    1
    2
    3
    
    Private Sub ComboBox3_Change()
    ComboBox3.WrapText = True
    End Sub

    ..должно быть.



    0




    Форум программистов Vingrad

    Новости ·
    Фриланс ·
    FAQ

    Правила ·
    Помощь ·
    Рейтинг ·
    Избранное ·
    Поиск ·
    Участники

    Форум -> Программирование -> Delphi, Kylix and Pascal -> Delphi: ActiveX/СОМ/CORBA
    (еще)

    Модераторы: MetalFan

    Поиск:

    Ответ в темуСоздание новой темы
    Создание опроса
    > Перенос текста в ячейке Excel, WrapText 

    :(

       

    Опции темы

    kwotz
    Дата 6.4.2007, 19:34 (ссылка)
    | (нет голосов)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Новичок

    Профиль
    Группа: Участник
    Сообщений: 25
    Регистрация: 6.1.2007
    Где: Майкоп

    Репутация: нет
    Всего: нет

    Хай! Хочу переносить текст по словам в ячейке, но не выходит в чем м.б. проблема?

    Код

     XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Bold := True;
      XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color := clBlack;
      XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Size := 14;
      XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name := 'Times New Roman';
      XL.WorkBooks[1].WorkSheets[1].Cells[1, 3] := 'Информация об организации выплачивающих заработную плату работникам...';
      XL.WorkBooks[1].WorkSheets[1].Cells[1,1].WrapText:=true;

    PM MAIL   Вверх
    F19
    Дата 9.4.2007, 16:23 (ссылка)
    | (нет голосов)
    Загрузка ... Загрузка …




    Быстрая цитата

    Цитата

    Новичок

    Профиль
    Группа: Участник
    Сообщений: 15
    Регистрация: 27.3.2007

    Репутация: нет
    Всего: нет

    А если сначала выделить ячейку(ки) Excel.ActiveWorkBook.ActiveSheet.Range[A1].Select;
    А затем сделать Excel.Selection.WrapText:=true; , то должно получиться.

    PM MAIL   Вверх



















    Ответ в темуСоздание новой темы
    Создание опроса
    Правила форума «Delphi: ActiveX/СОМ/CORBA»

    Rrader
    Girder

    Запрещено:

    1. Публиковать ссылки на вскрытые компоненты

    2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

    • Литературу по Delphi обсуждаем здесь
    • Действия модераторов можно обсудить здесь
    • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
    • Вопросы по реализации алгоритмов рассматриваются здесь
    • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Delphi
    • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

    Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

     

    0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
    0 Пользователей:
    « Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »

    Подписаться на тему |
    Подписка на этот форум |
    Скачать/Распечатать тему

    [ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]

    Реклама на сайте
       
    Информационное спонсорство

    Часто требуется внутри одной ячейки Excel сделать перенос текста на новую строку. То есть переместить текст по строкам внутри одной ячейки как указано на картинке. Если после ввода первой части текста просто нажать на клавишу ENTER, то курсор будет перенесен на следующую строку, но другую ячейку, а нам требуется перенос в этой же ячейке.

    Перенос строки в Excel в одной ячейке

    Это очень частая задача и решается она очень просто — для переноса текста на новую строку внутри одной ячейки Excel необходимо нажать ALT+ENTER (зажимаете клавишу ALT, затем не отпуская ее, нажимаете клавишу ENTER)

    Содержание

    • 1 Как перенести текст на новую строку в Excel с помощью формулы
      • 1.1 Как в Excel заменить знак переноса на другой символ и обратно с помощью формулы
      • 1.2 Как поменять знак переноса на пробел и обратно в Excel с помощью ПОИСК — ЗАМЕНА
      • 1.3 Как поменять перенос строки на пробел или наоборот в Excel с помощью VBA
      • 1.4 Коды символов для Excel

    Как перенести текст на новую строку в Excel с помощью формулы

    Иногда требуется сделать перенос строки не разово, а с помощью функций в Excel. Вот как в этом примере на рисунке. Мы вводим имя, фамилию и отчество и оно автоматически собирается в ячейке A6

    Как сделать переност строки в Excel с помощью формулы

    Для начала нам необходимо сцепить текст в ячейках A1 и B1 (A1&B1), A2 и B2 (A2&B2), A3 и B3 (A3&B3)

    После этого объединим все эти пары, но так же нам необходимо между этими парами поставить символ (код) переноса строки. Есть специальная таблица знаков (таблица есть в конце данной статьи), которые можно вывести в Excel с помощью специальной функции СИМВОЛ(число), где число это число от 1 до 255, определяющее определенный знак.
    Например, если прописать =СИМВОЛ(169), то мы получим знак копирайта ©

    Нам же требуется знак переноса строки, он соответствует порядковому номеру 10 — это надо запомнить.
    Код (символ) переноса строки — 10
    Следовательно перенос строки в Excel в виде функции будет выглядеть вот так СИМВОЛ(10)

    Примечание: В VBA Excel перенос строки вводится с помощью функции Chr и выглядит как Chr(10)

    Итак, в ячейке A6 пропишем формулу

    =A1&B1&СИМВОЛ(10)&A2&B2&СИМВОЛ(10)&A3&B3 

    В итоге мы должны получить нужный нам результат.
    Обратите внимание! Чтобы перенос строки корректно отображался необходимо включить «перенос по строкам» в свойствах ячейки.
    Для этого выделите нужную нам ячейку (ячейки), нажмите на правую кнопку мыши и выберите «Формат ячеек…»
    формат ячейкив Excel

    В открывшемся окне во вкладке «Выравнивание» необходимо поставить галочку напротив «Переносить по словам» как указано на картинке, иначе перенос строк в Excel не будет корректно отображаться с помощью формул.

    Перенос по строкам в формате ячеек

    Как в Excel заменить знак переноса на другой символ и обратно с помощью формулы

    Можно поменять символ перенос на любой другой знак, например на пробел, с помощью текстовой функции ПОДСТАВИТЬ в Excel

    Как заменить перенос строки на пробел в Excel

    Рассмотрим на примере, что на картинке выше. Итак, в ячейке B1 прописываем функцию ПОДСТАВИТЬ:

    =ПОДСТАВИТЬ(A1;СИМВОЛ(10);» «)

    A1 — это наш текст с переносом строки;
    СИМВОЛ(10) — это перенос строки (мы рассматривали это чуть выше в данной статье);
    » » — это пробел, так как мы меняем перенос строки на пробел

    Если нужно проделать обратную операцию — поменять пробел на знак (символ) переноса, то функция будет выглядеть соответственно:

    =ПОДСТАВИТЬ(A1;» «;СИМВОЛ(10))

    Напоминаю, чтобы перенос строк правильно отражался, необходимо в свойствах ячеек, в разделе «Выравнивание» указать «Переносить по строкам».

    Как поменять знак переноса на пробел и обратно в Excel с помощью ПОИСК — ЗАМЕНА

    Бывают случаи, когда формулы использовать неудобно и требуется сделать замену быстро. Для этого воспользуемся Поиском и Заменой. Выделяем наш текст и нажимаем CTRL+H, появится следующее окно.

    Заменить код переноса строки на пробел с помощью Поиск-Замена в Excel

    Если нам необходимо поменять перенос строки на пробел, то в строке «Найти» необходимо ввести перенос строки, для этого встаньте в поле «Найти», затем нажмите на клавишу ALT, не отпуская ее наберите на клавиатуре 010 — это код переноса строки, он не будет виден в данном поле.

    После этого в поле «Заменить на» введите пробел или любой другой символ на который вам необходимо поменять и нажмите «Заменить» или «Заменить все».

    Кстати, в Word это реализовано более наглядно.

    Если вам необходимо поменять символ переноса строки на пробел, то в поле «Найти» вам необходимо указать специальный код «Разрыва строки», который обозначается как ^l
    В поле «Заменить на:» необходимо сделать просто пробел и нажать на «Заменить» или «Заменить все».

    Заменить перенос строки на пробел с помощь Найти Заменить в Excel

    Вы можете менять не только перенос строки, но и другие специальные символы, чтобы получить их соответствующий код, необходимо нажать на кнопку «Больше >>», «Специальные» и выбрать необходимый вам код. Напоминаю, что данная функция есть только в Word, в Excel эти символы не будут работать.

    Специальные символы для поиск-замены

    Как поменять перенос строки на пробел или наоборот в Excel с помощью VBA

    Рассмотрим пример для выделенных ячеек. То есть мы выделяем требуемые ячейки и запускаем макрос

    1. Меняем пробелы на переносы в выделенных ячейках с помощью VBA

    Sub ПробелыНаПереносы()
    For Each cell In Selection
    cell.Value = Replace(cell.Value, Chr(32), Chr(10))
    Next
    End Sub

    2. Меняем переносы на пробелы в выделенных ячейках с помощью VBA

    Sub ПереносыНаПробелы()
    For Each cell In Selection
    cell.Value = Replace(cell.Value, Chr(10), Chr(32))
    Next
    End Sub

    Код очень простой Chr(10) — это перенос строки, Chr(32) — это пробел. Если требуется поменять на любой другой символ, то заменяете просто номер кода, соответствующий требуемому символу.

    Коды символов для Excel

    Ниже на картинке обозначены различные символы и соответствующие им коды, несколько столбцов — это различный шрифт. Для увеличения изображения, кликните по картинке.

    Коды символов

    Like this post? Please share to your friends:
  • Vba excel ячейка на странице
  • Vba excel функция длина строки
  • Vba excel ячейка за экраном
  • Vba excel функция ввода данных
  • Vba excel ячейка добавить текст