Пытаюсь тут на досуге подкрутить макрос Объединение ячеек без потери содержимого до юзабилити состояния чтобы было можно делать не только Merge без потери данных, но и UnMerge с распределением по ячейкам. (к стати, я сам уже давно использую такой макрос для склеивания текстов из нескольких выделенных ячеек в один стринг:
[vba]
Code
Sub Glue_TXT_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 text = Application.Trim(text) With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText text: .PutInClipBoard: End With MsgBox "Объединённый текст помещён в буфер обмена", , "Операция завершена успешно!" End Sub
[/vba]
просто никогда не приходило в голову, что его можно и для "хитрого" объединения ячеек использовать) Да ещё при этом хотелось бы в объединённой ячейке умудриться данные из объединяемых не только "в столбик" vbLF'ом разделять, но и по горизонтали. Ну в смысле чтобы в объединённой ячейке сохранялось подобие расположения данных, которое было в объединяемых. Множественные пробелы, естественно, не катят для горизонтального распределения данных внутри ячейки (ну не блондинки же мы-секретарши чтобы переносы в ячейках пробелами делать ) Я тут в ручном режиме ввода в ячейку попробовал организовать наглядность разделителями-символами псевдографики. Не наглядно получилось. Хотя потом по этим символам не сложно было бы и UnMerge с обратной расстановкой по ячейкам организовать. А потом решил попробовать сделать "в лоб" - ввести макросом в стринг, вставляемый в объединённую ячейку табуляцию. В окне Immediate выполнил: [vba]
Code
[a1]="12" & vbtab & "34"
[/vba] Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту (прямо как будто у меня там пробелов после 4 понатыкано). Т.е. символ табуляции в ячейке всё-таки не "глушится" Excel'ем, а только не отображается! Вот бы придумать, как его отображать! Есть у кого-нибудь идеи?
Пытаюсь тут на досуге подкрутить макрос Объединение ячеек без потери содержимого до юзабилити состояния чтобы было можно делать не только Merge без потери данных, но и UnMerge с распределением по ячейкам. (к стати, я сам уже давно использую такой макрос для склеивания текстов из нескольких выделенных ячеек в один стринг:
[vba]
Code
Sub Glue_TXT_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 text = Application.Trim(text) With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText text: .PutInClipBoard: End With MsgBox "Объединённый текст помещён в буфер обмена", , "Операция завершена успешно!" End Sub
[/vba]
просто никогда не приходило в голову, что его можно и для "хитрого" объединения ячеек использовать) Да ещё при этом хотелось бы в объединённой ячейке умудриться данные из объединяемых не только "в столбик" vbLF'ом разделять, но и по горизонтали. Ну в смысле чтобы в объединённой ячейке сохранялось подобие расположения данных, которое было в объединяемых. Множественные пробелы, естественно, не катят для горизонтального распределения данных внутри ячейки (ну не блондинки же мы-секретарши чтобы переносы в ячейках пробелами делать ) Я тут в ручном режиме ввода в ячейку попробовал организовать наглядность разделителями-символами псевдографики. Не наглядно получилось. Хотя потом по этим символам не сложно было бы и UnMerge с обратной расстановкой по ячейкам организовать. А потом решил попробовать сделать "в лоб" - ввести макросом в стринг, вставляемый в объединённую ячейку табуляцию. В окне Immediate выполнил: [vba]
Code
[a1]="12" & vbtab & "34"
[/vba] Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту (прямо как будто у меня там пробелов после 4 понатыкано). Т.е. символ табуляции в ячейке всё-таки не "глушится" Excel'ем, а только не отображается! Вот бы придумать, как его отображать! Есть у кого-нибудь идеи?Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Пятница, 23.11.2012, 10:08
Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту (прямо как будто у меня там пробелов после 4 понатыкано). Т.е. символ табуляции в ячейке всё-таки не "глушится" Excel'ем, а только не отображается!
У меня всё абсолютно так же происходит Пробовал в 03/07/10/13
Quote (Alex_ST)
Посмотрел на лист. На первый взгляд в ячейке А1 на листе ничего не получилось. Но когда я "прошёлся" в строке формул курсором по символам слева-направо, то очень интересно получилось: после 2 курсор скакнул за несколько знако-мест на середину символа 4, а потом пошёл дальше 2 раза по пустому месту (прямо как будто у меня там пробелов после 4 понатыкано). Т.е. символ табуляции в ячейке всё-таки не "глушится" Excel'ем, а только не отображается!
У меня всё абсолютно так же происходит Пробовал в 03/07/10/13Serge_007
1. Тем, что я не блондинка-секретарша чтобы ими текст в ячейках разгонять 2. Тем что при не моноширинном шрифте количество пробелов-разделителей столбцов будет переменным и не предсказуемым 3. тем, что по переменному и непредсказуемому числу пробелов потом не удастся сделать UnMerge 4. И ваще!
Quote (Serge_007)
чем множественные пробелы не угодили?
1. Тем, что я не блондинка-секретарша чтобы ими текст в ячейках разгонять 2. Тем что при не моноширинном шрифте количество пробелов-разделителей столбцов будет переменным и не предсказуемым 3. тем, что по переменному и непредсказуемому числу пробелов потом не удастся сделать UnMerge 4. И ваще!Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Пятница, 23.11.2012, 23:41