Заранее прошу прощения за кросспост, но в Миру ( http://www.excelworld.ru/forum/2-2857-1 ) что-то ничего толкового мне не подсказали, а у Серёги (KuklP) сегодня День варенья (и здесь ПОЗДРАВЛЯЮ) и он на более важное дело отвлёкся, естественно. А свободное время у меня чтобы поковыряться с проблемой есть сейчас. Чуть сокращу свой пост "в Миру": Пытаюсь подкрутить свой макрос для склеивания текстов из нескольких объединяемых ячеек в один стринг с переносами строк до юзабилити состояния чтобы было можно делать не только Merge без потери данных, но и UnMerge с распределением по ячейкам. Sub Merge_with_Chr10() ' объединить выделенные ячейки, склеив их тексты с переносами строк If TypeName(Selection) <> "Range" Then Exit Sub Dim rRng As Range: Set rRng = Intersect(Selection, ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible)) If rRng Is Nothing Then Exit Sub If rRng.Cells.Count = 1 Then Exit Sub Dim text$, rCell As Range For Each rCell In Intersect(Selection, ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible)) If Len(rCell.Value) Then text = text & IIf(Len(text), vbLf, "") & rCell.Value Next rCell Application.DisplayAlerts = False rRng.Merge: rRng.Value = Application.Trim(text) Application.DisplayAlerts = True End Sub Да ещё при этом хотелось бы в объединённой ячейке умудриться данные из объединяемых не только "в столбик" vbLF'ом разделять, но и по горизонтали. Ну в смысле чтобы в объединённой ячейке сохранялось подобие расположения данных, которое было в объединяемых. Множественные пробелы, естественно, не катят для горизонтального распределения данных внутри ячейки (ну не блондинки же мы-секретарши чтобы переносы в ячейках пробелами делать :D ) Я тут в ручном режиме ввода в ячейку попробовал организовать наглядность разделителями-символами псевдографики. Не наглядно получилось. Хотя потом по этим символам не сложно было бы и UnMerge с обратной расстановкой по ячейкам организовать. А потом решил попробовать сделать "в лоб" - ввести макросом в стринг, вставляемый в объединённую ячейку табуляцию. В окне Immediate выполнил: [a1]="12" & vbtab & "34" Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту (прямо как будто у меня там пробелов после 4 понатыкано). Т.е. символ табуляции в ячейке всё-таки не "глушится" Excel'ем, а только не отображается! Вот бы придумать, как его отображать! Есть у кого-нибудь идеи?
С уважением, Алексей(ИМХО: Excel-2003 - THE BEST!!!)
{quote}{login=Alex_ST}{date=23.11.2012 11:38}{thema=Как отобразить табуляцию в ячейке?}{post}В окне Immediate выполнил: [a1]="12" & vbtab & "34" Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту {/post}{/quote}Алекс, привет! У меня даже этого не происходит - остаётся сплошной текст с "квадратиками". А вот в ЛистБоксе, помнится, срабатывало...
Зачастую случается, что надо ввести какой-либо символ, для которого отсутствует клавиша на клавиатуре (например, символ копирайта). Другая ситуация - когда надо в строку включить служебный символ VBA (самый распространенный случай - включение двойных кавычек). Чтобы включить в строку символы, которые невозможно ввести с клавиатуры, или которые имеют особое значение для VBA, используется функция Chr. Синтаксис
Chr (Charcode)
Charcode - любое численное выражение, являющееся допустимым кодом для набора символов, используемого компьютером. Должен быть целым числом от 0 до 255. Функция Chr принимает код отдельного символа в качестве аргумента и возвращает строку, содержащую соответствующий этому коду символ. Данная функция использована в вышеприведенных листингах для перевода строки при выводе сообщения на экран Chr (13).
Поскольку символы, используемые для начала новой строки, являются очень важными при форматировании сообщений и других строковых данных, которыми манипулируют VBA-процедуры, имеется несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr: vbCr - символ возврата каретки. Эквивалент Chr(13) vbLf - символ смещения на одну строку. Эквивалент Chr(10) vbCrLf - символ возврата каретки+смещения на одну строку. Эквивалент Chr(13)+ Chr(10) vbTab - символ табуляции. Эквивалент Chr(9) отсюда http://www.on-line-teaching.com/vba/lsn0107.html