Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 21:01   #1
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию Макрос для объединения ячеек Excel

Есть четыре стоящие по горизонтали ячейки с занесенными в них данными,
если объединять эти ячейки кнопочкой "Объединить ячейки", то данные внутри ячеек теряются, кроме той что стоит в первой левой.

Возможно ли и если да то как сделать макрос, который объединяет стоящие несколько(например четыре) ячейки рядом по горизонтали, так, чтобы данные из всех четырех ячеек не потерялись и оказались в новой объединенной ячейке ?
wadzik вне форума Ответить с цитированием
Старый 09.11.2009, 21:14   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

короткий ответ - можно.
а реальный ответ завит от способа обьединения данных из 4-х ячеек в одну. Кстати, перед обьединением (после того как данные уже обработаны) - данные из присоединяемых ячеек надо удалить, чтобы избавиться от вопроса возникающего у экселя при обьединении непустых ячеек.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.11.2009, 21:27   #3
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию

а если не короткий ответ
как ? можно пример.

способ объединения данных, ну не знаю, а как проще будет.

В общем смысл вот в чем:

Есть таблица Excel, в ней порядка тысячи строк, в этой таблице в четырех стоящих рядом ячейках записаны данные, их надо оъединить в одну ячейку и так в каждой из этой 1000 строк:

т.е. есть
-----А-----B-------C---------D
|Съешь |эту |вкусную |конфету |

надо
-----А-----B-------C---------D
|Съешь эту вкусную конфету |

а в идеале вообще вот так:

---------------------А-------------------B---------------C----------------D
|Съешь эту вкусную конфету |"пустая ячейка"|"пустая ячейка"|"пустая ячейка"|

Последний раз редактировалось wadzik; 09.11.2009 в 21:37.
wadzik вне форума Ответить с цитированием
Старый 09.11.2009, 22:53   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Merge4()
  For r = ActiveCell.Row To ActiveCell.End(xlDown).Row
    Cells(r, 1) = Cells(r, 1) & Cells(r, 2) & Cells(r, 3) & Cells(r, 4)
    Range(Cells(r, 2), Cells(r, 4)).ClearContents
    Range(Cells(r, 1), Cells(r, 4)).Merge
  Next
End Sub
от строки с активной ячейкой до конца списка данные с ячеек В,С,Д приоединяются к А.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.11.2009, 23:13   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

wadzik у меня к Вам вопрос:
"в каждой из этой 1000 строк" - зачем объединять тысячу ячеек с тремя тысячами ячеек не содержащими никакой информации ?
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 09.11.2009, 23:20   #6
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию

Спасибо помогло
wadzik вне форума Ответить с цитированием
Старый 09.11.2009, 23:40   #7
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
wadzik у меня к Вам вопрос:
"в каждой из этой 1000 строк" - зачем объединять тысячу ячеек с тремя тысячами ячеек не содержащими никакой информации ?
Евгений.
Рядомстоящие ячейки не пустые

Имеется


Нужно


IgorGO

Простите за наглость, но можно как-нибудь изменить скрипт, чтобы при вставки, ячейки объединя лись с пробелами,

т.е. А= А +" " +Б +" " +С +" " +Д.

Спасибо
wadzik вне форума Ответить с цитированием
Старый 09.11.2009, 23:45   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

можно:
Код:
Cells(r, 1) = Cells(r, 1) & " " & Cells(r, 2) & " " & Cells(r, 3) & " " & Cells(r, 4)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.11.2009, 23:52   #9
wadzik
Пользователь
 
Регистрация: 18.08.2009
Сообщений: 23
По умолчанию

Спасибо огромное
wadzik вне форума Ответить с цитированием
Старый 10.11.2009, 22:13   #10
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

wadzik Вы ошиблись выложив "картинки" которые противоречат первоначальному вопросу - "Возможно ли ... объединяет стоящие ... ячейки рядом по горизонтали" или ошиблись с вопросом?. Скорее второе, если для решения задачи достаточно применить конкатенацию (сложение текста) которую предложил IgorGO, без Merge (объединения ячеек им же предложенного). "Рядомстоящие ячейки не пустые" - таковыми становятся, но без объединения.
Будьте внимательнее.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для набора номера из Excel Инн@ Microsoft Office Excel 31 29.12.2013 00:44
Макрос для объединения одинаковых ячеек Internal2 Microsoft Office Excel 2 05.11.2009 14:00
Макрос для Excel W0LF Microsoft Office Excel 1 30.10.2009 15:07
макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-» Vadim_abs Microsoft Office Excel 36 14.07.2009 12:08
Надо макрос для Excel для перестановки букв dionisprf Microsoft Office Excel 2 10.06.2009 06:04