Подскажите,плиз,как объединить 2-3 ячейки без потери данных??? Или это не возможно???
|
Подскажите,плиз,как объединить 2-3 ячейки без потери данных??? Или это не возможно???
Никогда не сдавайся!!!
Никак даже в 2007, это следует из хелпа:
Microsoft Office Excel, merging is the process of creating one cell out of two or more selected cells. When you merge cells and more than one of the selected cells contains data, Excel keeps the data in the upper-left or upper-right cell (depending on your current view direction) and deletes all remaining data.
Что по русски означает примерно следующее - эксель сохраняет данные из верхней левой или правой ячейки и удаляет все остальные данные
Но создав вот такой простейший макрос и повесив его на какое-то сочетание клавиш можно элементарно объединять содержимое выделенных ячеек. Это макрос лишь как вариант - первое что пришло в голову.
Sub Macro1()
Dim Cell As Range
Dim str
str = ""
For Each Cell In Selection
str = str + Cell.Formula
Next Cell
For Each Cell In Selection
Cell.Value = str
Next Cell
Selection.Merge
End Sub
Последний раз редактировалось maxx™; 20.02.2008 в 08:41. Причина: добавление макроса
Не сильно понятен смысл в этом цикле.
Его можно заменить на такую строчку:
Selection.FormulaR1C1 = str
которая должна быть после Selection.Merge.
в итоге все выглядит так:
Dim Cell As Range
Dim str
str = ""
For Each Cell In Selection
str = str + Cell.Formula
Next Cell
Selection.Merge
Selection.FormulaR1C1 = str
Можно и так. А смысл в том цикле в том, что мы делаем все ячейки одинаковыми, а потом уже пусть эксель удаляет что ему не нравится, содержимое всех ячеек к тому времени уже все равно одинаковое и такое как необходимо. Можно и так как ты предложил, но мне например искать в хелпе Selection.FormulaR1C1 было просто лень.
спасибо ребята за внимание к моей проблеме,но я мало что поняла.
Никогда не сдавайся!!!
Выполняем следующие действия:
1. Заускаем эксель
2. Идем: Сервис-Макрос-Макросы
3. Откроется окно макросов. А поле "Имя Макроса" набираем удобное название, затем нажимаем кнопку Создать.
4. Откроется новое окно VBA. В открывшимся окне между строками:
Sub <имя которое задали в пункте 3(подставляется автоматически )>()
<сюда вставлять код>
End Sub
Вставить написанный здесь код:
Dim Cell As Range
Dim str
str = ""
For Each Cell In Selection
str = str + Cell.Formula
Next Cell
Selection.Merge
Selection.FormulaR1C1 = str
5. Теперь просто закрываете окно, и снова попадаете в эксель.
6. В окне экселя, снова идете Сервис-Макрос-Макросы.
7. Выбираете макрос который только, что создали и нажимаете кнопку Параметры
8. В появившимся окне ассоциируете вызов макроса с нужной комбинацие кнопок.
9. сохраняете экселевский файл с любым названием.
10. Теперь этот сохраненный экселевский файл необходимо скопировать сюда:
C:\Documents and Settings\<Имя пользователя>\Application Data\Microsoft\Excel\XLSTART
Так все преготовления сделаны.
Теперь, чтобы им воспользоваться, достаточно запустить эксель, выделить область, которая подлежит объединению и нажать ранее заданую комбинацию клавиш, последует вопрос-предупреждение о потери данных и объединении говорите Ок и на экране видете объедененные ячейки без потери данных.
Enjoy
ReeP, Вам бы учебники писать
Но...
Уверен, что если человек (тем более девушка) ни разу не щупал макросы своими руками, то помочь может ИМХО, как минимум, консультация в телефонном режиме.
ReeP,спасибо за помощь,но у меня новый "офис"(2007г) и некоторых вещей (которые ты написал) нет и в помине :
C:\Documents and Settings\<Имя пользователя>\Application Data\Microsoft\Excel\XLSTART ... Начиная с Application и далее я потерялась ....
ХЕЛП МИ
Никогда не сдавайся!!!
kon-stantin, А если я хочу не только строку но и чтобы во всех столбцах было объединено... Напр:
...привет...как..дела_________________ привет как дела
...нормал...все...хорошо..._____________нормал все хорошо
...привет...как...дела...________________привет как дела
Вот примерно так. Чтобы во всех столбцах(во всех строках) разом все объединилось: от 1 до 700...
Никогда не сдавайся!!!
У меня стоит Офис 2007 и никаких B C D там нет,колонки номируются 1,2,3,... Допустим если первая колонка и первая строчка,то отображается:R1C1. Не знаю,при чем здесь R и С?
Никогда не сдавайся!!!
Какие макросы. Есть такая формула - СЦЕПИТЬ
Смотри скрины
https://forumodua.com/attachment.php?attachmentid=129047&d=1203419651
https://forumodua.com/attachment.php?attachmentid=129048&d=1203419660
https://forumodua.com/attachment.php?attachmentid=129049&d=1203419665
Последний раз редактировалось leshiy_odessa; 19.02.2008 в 12:43.
Но при этом исходные ячейки нужно оставлять. В конче концов можно дописать немножко макрос чтоб спрашивал - вам сцеплять или заменять на месте...
Макрос V2 - объединяет построчно строки в выделеном диапазоне и помещает результат в крайнюю левую ячейку каждой строки. Если левая колонка выделения пустая, то в ней мы получим строку из всех значений ячеек которые правее нее. Этот макрос для тех, кому необходимо от лишник колонок избавиться и поэтому СЦЕПИТЬ не подходит.
Sub test()
Dim Rw As Range
Dim str
For Each Rw In Selection.Rows
str = ""
For n = 1 To Rw.Columns.Count
str = str + Rw.Cells(1, n).Formula
Next n
Rw.Cells(1, 1).Value = str
Next Rw
'Selection.Merge
'Selection.FormulaR1C1 = str
End Sub
Последний раз редактировалось maxx™; 20.02.2008 в 08:43.
Социальные закладки