Excel перенос текста в ячейке 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».

 

excel_pl

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

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

#1

13.08.2017 10:45:50

Код сцепляет столбец по критерию

Скрытый текст

Сцепка происходит по принципу:
Текст 1, Текст 2

Вопрос
Как сделать чтобы разделитель был не «, «, а перенос текста на следующую строчку?
Т.е., чтобы сцепка происходила по принципу:

Текст 1
Текст 2

 

Sanja

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

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

#2

13.08.2017 10:54:04

Код
Function MergeIf(TextRange As Range, SearchRange As Range, Condition As String)
    Dim i As Long
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange.Count <> TextRange.Count Then
        MergeIf = CVErr(xlErrRef)
        Exit Function
    End If
    For i = 1 To SearchRange.Cells.Count
        If SearchRange.Cells(i) Like Condition Then
            If MergeIf <> Empty Then
                MergeIf = MergeIf & TextRange.Cells(i) & vbCrLf
            Else
                MergeIf = TextRange.Cells(i) & vbCrLf
            End If
        End If
    Next i
End Function

Согласие есть продукт при полном непротивлении сторон.

 

Kuzmich

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

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

#3

13.08.2017 11:10:55

Цитата
Как сделать чтобы разделитель был не «, «, а перенос текста на следующую строчку?

В ячейке включить перенос по словам

Код
Dim OutText As String
Delimeter = Chr(10)
 

excel_pl

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

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

#4

13.08.2017 11:38:32

Цитата
Sanja

А каких-нибудь спец. символов вместо запятой для строчки  «Delimeter = «,  » » нету?
например, что-нибудь в духе : rn;
 

 

Sanja

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

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

Согласие есть продукт при полном непротивлении сторон.

 

Юрий М

Модератор

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

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

excel_pl, Вы не отписались в своих старых темах, а уже создали новую. Или ответы не интересуют?

 

excel_pl

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

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

#7

14.08.2017 08:44:36

Вопрос решён.
Всем спасибо.

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

​Смотрите также​ = 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

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

pestov

1

16.12.2008, 15:57. Показов 39631. Ответов 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



Home / VBA / How to Add a New Line (Carriage Return) in a String in VBA

In VBA, there are three different (constants) to add a line break.

  1. vbNewLine
  2. vbCrLf
  3. vbLf

vbNewLine

vbNewLine inserts a newline character that enters a new line. In the below line of code, you have two strings combined by using it.

Range("A1") = "Line1" & vbNewLine & "Line2"

When you run this macro, it returns the string in two lines.

It returns the character 13 and 10 (Chr(13) + Chr(10)). You can use a code in the following way as well to get the same result.

Range("A1") = "Line1" & Chr(13) & Chr(10) & "Line2"

But when you use vbNewLine you don’t need to use CHAR function.

vbCrLf

vbCrLf constant stands for Carriage Return and Line feed, which means Cr moves the cursor to the starting of the line, and Lf moves the cursor down to the next line.

When you use vbCrLf within two string or values, like, you have in the following code, it inserts a new line.

Range("A1") = "Line1" & vbCrLf & "Line2"

vbLf

vbLf constant stands for line feed character, and when you use it within two strings, it returns line feed character that adds a new line for the second string.

Range("A1") = "Line1" & vbLf & "Line2"

If you want to add a new line while using the VBA MsgBox you can use any of the above three constants that we have discussed.

MsgBox "Line1" & vbNewLine & "Line2"
MsgBox "Line1" & vbCrLf & "Line2"
MsgBox "Line1" & vbLf & "Line2"

There’s also a constant vbCr that returns carriage return character that you can use to insert a new line in a message box.

MsgBox "Line1" & vbCr & "Line2"

vbCr won’t work if you want to enter a cell value until you apply wrap text to it.

VBA Excel. Перенос кода процедуры и текста на новую строку

Перенос части кода одного выражения VBA Excel на другую строку. Объединение нескольких операторов в одной строке. Программный перенос текста на новую строку.

Обратите внимание, что в этой статье слова «оператор» и «выражение» употребляются в одном значении. Они обозначают минимальный исполняющийся код VBA, расположенный в одной строке.

Перенос части выражения на новую строку

Деление длинного оператора на части улучшит его читаемость, сделает код процедуры более наглядным и компактным, не позволит ему уходить за пределы видимого экрана справа.

Переносимые на новые строки части кода одного выражения разделяются символом нижнего подчеркивания (_), который ставится обязательно после пробела. Этот символ указывает компилятору VBA Excel, что ниже идет продолжение текущей строки.

Пример 1
Процедуры без переноса и с переносом части кода операторов:

Вы можете скопировать код Примера 1 и проверить его работоспособность. В обоих случаях информационное окно MsgBox покажет одинаковый результат.

Иногда пишут, что для переноса кода добавляется пробел с символом подчеркивания. Так легче запомнить и не забыть, что перед знаком подчеркивания обязательно должен быть пробел. Но на самом деле, как видите из примера выше, пробелы уже есть в исходном коде, и мы добавили только символы подчеркивания.

Объединение операторов в одной строке

Множество коротких выражений в коде VBA Excel можно объединить в одной строке. Для этого используется символ двоеточия с пробелом «: », который указывает компилятору, что за ним идет следующий оператор.

Пример 2
Процедуры без объединения и с объединением операторов:

Во втором примере, как и в первом, информационное окно MsgBox покажет одинаковый результат.

Программный перенос текста на другую строку

Для программного переноса произвольного текста на новую строку в VBA Excel используются следующие ключевые слова:

  • vbCr – возврат каретки;
  • vbLf – перевод строки;
  • vbCrLf – возврат каретки и перевод строки, аналог нажатия клавиши «Enter»;
  • vbNewLine – новая строка.

Выражения «возврат каретки» и «перевод строки» идут от механических пишущих машин (печатных машинок).

Пример 3
Проверяем работоспособность перечисленных выше ключевых слов по программному переносу текста на новые строки в ячейке и информационном окне MsgBox:

Получился следующий результат:

Результат четырех переносов текста на новую строку

Как видно на изображении, ключевое слово «vbCr» не сработало в ячейке для переноса текста на другую строку, хотя сработало в информационном окне MsgBox.

Ключевые слова «vbCr» и «vbLf» я использовал исключительно для ознакомления, а на практике следует применять для переноса текста на новую строку – «vbCrLf» и «vbNewLine».

Статья Как в Excel сделать перенос текста в ячейке

Very kind Developer

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

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

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

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

Для начала нам необходимо сцепить текст в ячейках 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 пропишем формулу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Начиная практиковаться в написании кода VBA, очень важно с самого начала выработать хорошие привычки в оформлении кода, чтобы в дальнейшем написанный код было легко читать и понимать, как он работает.

В процессе написания кода, программист может иметь совершенно чёткое представление о том, что за код он пишет и как этот код должен работать. Но нужно позаботиться и о том, чтобы, вернувшись к работе спустя полгода, не пришлось ломать голову, пытаясь понять, что должен делать этот код. Ещё более неприятная ситуация – когда кто-то другой станет продолжать Вашу работу над кодом и не сможет понять, как он работает.

Эта статья посвящена комментариям, отступам в коде и переносам строк – элементам, которые делают код аккуратным и понятным.

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

Самое важное для написания аккуратного и понятного кода – чаще оставлять комментарии. Комментарии – это строки в коде, которые исполняют роль заметок и помогают разобраться, какие действия выполняет та или иная часть кода.

Комментарии не участвуют в процессе выполнения программы и не влияют на результат работы макроса. Каждая строка, начинающаяся апострофом (‘), будет считаться в VBA комментарием. Редактор VBA в Excel выделит такую строку зелёным цветом шрифта, чтобы с первого взгляда было понятно, что это комментарий, который не будет выполняться.

Ниже продемонстрировано, как при помощи комментариев поясняется работа простой процедуры Sub:

Не расстраивайтесь, если какую-то часть кода, показанного выше, не удалось понять – далее в учебнике мы рассмотрим эту тему подробнее. Цель приведённого примера – продемонстрировать, как при помощи комментариев поясняется каждый блок кода.

Часто программисты ленятся добавлять подробные комментарии к своему коду, но, поверьте, затраченные усилия оправдают себя с избытком! Несколько минут, потраченных на написание понятного комментария, могут сэкономить Вам долгие часы в будущем.

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

Другой приём, делающий написанный код более читаемым – правильно расставлять отступы. В приведённом выше примере видно, что отступ сделан для кода внутри главной процедуры Sub и далее отступ увеличивается для каждого вложенного блока кода. Такие увеличенные отступы помогают понять, где каждый отдельный блок кода начинается и заканчивается.

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

Ещё один способ сделать код более читаемым и облегчить работу с ним – делать переносы и разбивать одну длинную строку кода на несколько коротких. В VBA, чтобы разбить строку, нужно вставить символы ” _” (пробел+подчёркивание) непосредственно перед переносом строки. Это сообщает компилятору VBA, что текущая строка кода продолжается на следующей строке.

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

Посмотрите на этот оператор If:

При помощи переносов строк тот же оператор If может быть записан вот так:

Если рассмотренный оператор If разбит на четыре строки, то составляющие его блоки c условиями видны гораздо более наглядно. Этот пример иллюстрирует, как аккуратное оформление может сделать код более читаемым и привести в результате к меньшему количеству ошибок и путаницы.

Titles = «Queen »
Name$ = «Elizabeth »
Numeral$ = «I»
Title$ & Name$ &. Numeral$ = «Queen Elizabeth I»
Title$ 6 Name$ & Numeral$ & Numeral$ = «Queen Elizabeth II»

Оператор & объединяет строки в том порядке, как они представлены. Поэтому, в отличие от суммирования чисел, для слияния строк важен их порядок следования. С помощью & можно складывать сколько угодно строковых значении. Ниже приведен пример с использованием уже объявленных выше переменных:

CurrentQueen$ = Title$ & Name$ & Numeral$ & Numeral$

Совет: Основным отличием оператора & от + является возможность использования & для объединения строковых данных с другими их типами. Например, выражение С=А% & В$ объединяет целочисленную и строковую переменные, изменяя тип их значений на variant.

У компьютера нет отдельного участка памяти для хранения текста, а еще одного — для чисел. Все, что поступает в память компьютера, преобразуется в числовой формат (реально — в двоичное представление). В программе помечается только, что данный участок оперативной памяти содержит закодированный текст. Обычно формат для преобразования текстовой информации в цифровую называется ASCII (American Standard Code for Information Interchange). Данный формат присваивает каждому символу соответствующее число в диапазоне от 0 до 255, хотя Windows не может вывести на экран все 255 символов и использует более ограниченный их набор ANSI (American National Standards Institute). Управляющие символы, а также специальные типа табуляции или перевода строки -имеют номера до 32. Значением функции Chr(n) является символ, соответствующий числу п из формата ASCII. Оператор

либо выводит на экран символ, соответствующий коду ASCII, текущим шрифтом, либо имеет место особый эффект в зависимости от типа управляющего символа. Например, оператор

выводит греческую букву «пи» на экране, если перед этим значение FontType было установлено как MS LineDraw при помощи окна Propoties или через Code.
Следующий пример использует код символа кавычек («), 34, для вывода на экран фразы, заключенной в кавычки с обеих сторон:

Print Chr (34) ;
Print «Quoth the raven, nevermore.» ;
Print Chr (34)

Совет: Функция Chr возвращает строку, хранимую в типе variant. Аналогичная более старая функция ChrS возвращает непосредственно строковое значение.

На экране будет выведено

«Quoth the raven, nevermore.»

Примечание: Предыдущий результат можно получить с помощью оператора:

Print «‘»‘Quoth the raven, nevermore.»»» ;

так как Visual Basic, в отличие от многих версий BASIC, воспринимает два символа кавычек как один и выводит его на экран в выражениях с оператором Print или при работе со строковыми значениями.

В Visual Basic существует функция Asc, параметром которой является строковое значение, а результат равняется коду ASCII для первого символа. Если строка пустая, функция выдаст ошибку во время выполнения (run time error).
Порядок ASCII/ANSI используется по умолчанию Visual Basic при сравнении различных строк с помощью операторов сравнения, таких как > и Примечание: Внутри Visual Basic используется Unicode — система, поддерживающая все возможные языки. В ней содержится порядка 65 тысяч различных символов. Более подробно об этом можно узнать из приложения к книге «Руководство программиста». За исключением нескольких особых ситуаций, включая двоичные файлы, переключение между ASCII и Unicode является вполне прозрачным для программиста.

Переход на новую строку

В ранних версиях Visual Basic одним из основных способов использования функции Chr является формирование управляющих символов для перехода к новой строке в программах. Переход к новой строке используется при работе с многостроковыми полями ввода или при добавлении информации в информационной панели. Как и в старых печатных машинках, для перехода на новую строку необходимо проделать две операции: перевод каретки (carriage return) для возврата к первому символу строки, а затем перевод строки для перехода на следующую строку. При использовании функции Chr переход на новую строку выглядит так:

vbCrLf = Chr (13) + Chr (10)

Но теперь имеется возможность использовать встроенную константу vbCrLf.
Например, необходимо разорвать строку в информационной панели или в многостроковом поле ввода. Быстрее всего это реализовать с использованием vbCrLf:

TextString$ = «Visual Basic For Windows» + vbCrLf
TextString$ = TextString$ + «Osborne McGraw-Hill» + vbCrLf
TextString$ = TextString$ + «Berkeley, CA»
Textl.Text = TextString$

Совет: Если пренебречь установкой свойства MultiLine в значение True и попробовать применить переход на новую строку, то на экране можно будет увидеть две интересные вертикальные линейки прокрутки.

Кстати, может возникнуть вопрос: почему строковые значения сначала «накапливаются», а только затем выводятся на экран. Ответ прост: это один из основных способов ускорения работы программ на Visual Basic.

Совет: Гораздо быстрее сначала скомпоновать всю строку, а затем использовать свойство Text, чем изменять его постоянно.

Аналогичным образом можно ускорить формирование информационной панели, если в ней необходимо вывести несколько строк:

Message$ = «This will be on line 1.»
Message = Message$ + vbCrLf + «This will be on line 2.»
MsgBox Message$

Другие полезные строковые константы

Кроме константы vbcrLf, существует еще ряд других, не менее полезных встроенных констант (см. таблицу далее). Все эти константы можно использовать в программах на Visual Basic вместо соответствующих значений функций Chr$ или Chr. Однако для Microsoft Windows применение найдут только коды для carriage return, line feed, tab и backspace.

Строки фиксированной длины

Строки фиксированной длины представляют собой специальный тип строки, в дальнейшем часто используемый. Подобные переменные создаются при помощи оператора Dim. Вот пример:

Dim ShortString As String * 10
Dim strShort As String * 10

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

Microsoft Excel обеспечивает перенос текста в ячейке для его отображения на нескольких строках. Ячейку можно настроить для автоматического переноса текста или ввести разрыв строки вручную.

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

Выделите на листе ячейки, которые требуется отформатировать.

На вкладке Главная в группе Выравнивание выберите команду Перенести текст .

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

Если текст с переносами отображается не полностью, возможно, задана точная высота строки или текст находится в объединенных ячейках.

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

Выделите ячейки, для которых требуется выровнять высоту строк.

На вкладке Главная в группе Ячейки нажмите кнопку Формат.

В группе Размер ячейки выполните одно из следующих действий:

Чтобы автоматически выравнивать высоту строк, выберите команду Автоподбор высоты строки.

Чтобы задать высоту строк, выберите команду Высота строки и введите нужное значение в поле Высота строки.

Совет: Кроме того, можно перетащить нижнюю границу строки в соответствии с высотой текста в строке.

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

Новую строку текста можно начать в любом месте ячейки.

Дважды щелкните ячейку, в которую требуется ввести разрыв строки.

Совет: Можно также выделить ячейку, а затем нажать клавишу F2.

Дважды щелкните в ячейке то место, куда нужно вставить разрыв строки, и нажмите сочетание клавиш ALT+ВВОД.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

[vba]

Код

Sub test()
    Call convertVisualAltEnterToPhysical(Range(«A4»))
End Sub

Sub convertVisualAltEnterToPhysical(rng As Range)

    Dim hgh0        As Double   ‘высота ячейки для пустой текстовой строки — при подстановке «» в Range.Value (единица высоты, «одна высота»)

    Dim str0        As String   ‘исходная строка — исходное значение Range.Value
    Dim str         As String   ‘исходная строка после замены только очередного пробела/минуса на Alt+Enter
    Dim strNxt      As String   ‘исходная строка после замены только следующего (очередного+1) пробела/минуса на Alt+Enter

            Dim lines       As Integer  ‘кол-во линий (строк) — для размещения исходной строки (текста) в ячейке (без Alt+Enter)

        Dim start       As Integer  ‘номер символа начала поиска очередного пробела/минуса
    Dim startNxt    As Integer  ‘номер символа начала поиска следующего (очередного+1) пробела/минуса
    Dim posSpace    As Integer  ‘позиция первого найденного ПРОБЕЛА при начале поиска от start
    Dim posMinus    As Integer  ‘позиция первого найденного МИНУСА при начале поиска от start

        Dim delimiters  As Integer  ‘кол-во разделителей (пробелов/минусов) в исходной строке (максимальное потенциально возможное — для определения верхней границы цикла)
    Dim words       As Integer  ‘кол-во слов = delimiters + 1
    Dim strWords    As String   ‘строка после замены минусов/пробелов на двойные тильды — заведомо длиннее исходной
    Dim lenWords    As Integer  ‘заведомо большая длина этой строки (длина+1)
    Dim i           As Integer  ‘счётчик цикла по delimiters

        Dim arrLines()  As Integer  ‘массив кол-в линий в ячейке, соответствующий «левым» текстам из arrLeft()
    Dim arrLeft()   As String   ‘массив «левых» текстов = значений ячеек слева до очередного i-го пробела/минуса
    Dim arrRows()   As String   ‘формируемый массив текстовых строк в ячейке

        Dim prevRow     As Integer
    Dim currRow     As Integer
    Dim prevLeft    As String
    Dim currLeft    As String

        str0 = rng.Value

        strWords = Replace(Replace(str0, » «, «~~»), «-«, «~~»)
    lenWords = Len(strWords) + 1 ‘заведомо большая длина всей строки
    delimiters = UBound(Split(strWords, «~~»))
    words = delimiters + 1

        ReDim arrLines(1 To words)
    ReDim arrLeft(1 To words)

        rng.Value = «»
    hgh0 = rng.Height ‘»одна высота» строки = высота ячейки при пустой строке
    rng.Value = str0
    lines = Int(rng.Height / hgh0 + 0.5)

        ReDim arrRows(1 To lines)

        start = 1

        For i = 1 To words

            ‘поиск места очередного разделителя
        posSpace = InStr(start, str0, » «)
        If posSpace = 0 Then posSpace = lenWords

                posMinus = InStr(start, str0, «-«)
        If posMinus = 0 Then posMinus = lenWords

                       If posSpace < posMinus Then
            startNxt = posSpace + 1

                    ElseIf posMinus < posSpace Then
            startNxt = posMinus + 2 ‘потому что вместо одного символа вставляется два

                    Else
            ‘posSpace = posMinus = lenWords
            startNxt = lenWords
        End If

                       str = Left(str0, startNxt — 2)
        rng.Value = str
        arrLines(i) = Int(rng.Height / hgh0 + 0.5)
        arrLeft(i) = str

                start = startNxt
    Next i

        ‘наполнение
    prevRow = lines + 1
    For i = words To 1 Step -1
        currRow = arrLines(i)
        If currRow <> prevRow Then
            arrRows(currRow) = arrLeft(i)
        End If
        prevRow = currRow
    Next i
    ‘получение визуальных линий (строк) внутри ячейки
    For i = lines To 2 Step -1
        arrRows(i) = LTrim(Replace(arrRows(i), arrRows(i — 1), «», 1, 1))
    Next i

        rng.Value = Join(arrRows, Chr(10))
End Sub

[/vba]


Форум программистов 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.0951 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]

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

Понравилась статья? Поделить с друзьями:
  • Excel перенос текста в ячейке enter
  • Excel перенос формулы в другую ячейку
  • Excel перенос текста в одну ячейку
  • Excel перенос текста в объединенной ячейке
  • Excel перенос текста в диаграмме