Заранее прошу прощения за кросспост, но в Миру ( ) что-то ничего толкового мне не подсказали, а у Серёги (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'ем, а только не отображается!
Вот бы придумать, как его отображать!
Есть у кого-нибудь идеи?
А свободное время у меня чтобы поковыряться с проблемой есть сейчас.
Чуть сокращу свой пост "в Миру":
Пытаюсь подкрутить свой макрос для склеивания текстов из нескольких объединяемых ячеек в один стринг с переносами строк до юзабилити состояния чтобы было можно делать не только 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!!!)