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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2013, 08:53   #1
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию Объединение ячеек при вставки в разных диапазонах

Здравствуйте! Очень нужна Ваша помощь...при создании макроса... Буду благодарна любой помощи)))
2.JPG
Guren вне форума Ответить с цитированием
Старый 01.03.2013, 10:07   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Например, объедининие ячеек для столбца "A", начиная с ячейки "A1" и заканчивая последней заполненной ячейкой, можно сделать так:
Код:
Sub qq()
    Dim i As Integer, x As Range: Set x = [A1]
    Application.ScreenUpdating = False: Application.DisplayAlerts = False
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If x.Cells(1, 1) = Cells(i, 1) Then
            Set x = Union(x, Cells(i, 1)): x.Merge
        Else: Set x = Cells(i, 1)
        End If
    Next
End Sub
Для остальных столбцов аналогично.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.03.2013, 12:08   #3
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию

Спасибо за ответ))). Подскажите, пожалуйста, а как этот код (макрос) сделать автоматическим, т.е. при открывание ехселя или вставки(какого-то значения в ячейку)?
Guren вне форума Ответить с цитированием
Старый 01.03.2013, 12:11   #4
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Например, объедининие ячеек для столбца "A", начиная с ячейки "A1" и заканчивая последней заполненной ячейкой, можно сделать так:
Код:
Sub qq()
    Dim i As Integer, x As Range: Set x = [A1]
    Application.ScreenUpdating = False: Application.DisplayAlerts = False
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If x.Cells(1, 1) = Cells(i, 1) Then
            Set x = Union(x, Cells(i, 1)): x.Merge
        Else: Set x = Cells(i, 1)
        End If
    Next
End Sub
Для остальных столбцов аналогично.






Спасибо за ответ))). Подскажите, пожалуйста, а как этот код (макрос) сделать автоматическим, т.е. при открывание ехселя или вставки(какого-то значения в ячейку)?
Guren вне форума Ответить с цитированием
Старый 02.03.2013, 07:43   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении. Не знаю, на сколько правильно я понял Вашу задачу.
При открытии файла, в контекстном меню ячейки рабочего листа добавится опция "Моя вставка". Для вставки скопированного диапазона будут доступны стандартные средства ("Вставить" и "Специальная вставка..."), а также добавленная "Моя вставка", применив которую, будет выполнен макрос объединения ячеек во всех столбцах вставленного диапазона.
При каждой деактивации (закрытии) этой книги контекстное меню будет возвращаться к исходному виду. При каждой активации (открытии) - дополнительная опция будет вновь появляться в контекстном меню ячейки.
Вложения
Тип файла: rar пример.rar (13.8 Кб, 16 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.03.2013, 09:40   #6
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите пример во вложении. Не знаю, на сколько правильно я понял Вашу задачу.
При открытии файла, в контекстном меню ячейки рабочего листа добавится опция "Моя вставка". Для вставки скопированного диапазона будут доступны стандартные средства ("Вставить" и "Специальная вставка..."), а также добавленная "Моя вставка", применив которую, будет выполнен макрос объединения ячеек во всех столбцах вставленного диапазона.
При каждой деактивации (закрытии) этой книги контекстное меню будет возвращаться к исходному виду. При каждой активации (открытии) - дополнительная опция будет вновь появляться в контекстном меню ячейки.
Здравствуйте! Я нашла пример, то что мне надо сделать, но там нет кодов...не подскажете как можно сделать....
А как сделать так.rar
Guren вне форума Ответить с цитированием
Старый 02.03.2013, 19:56   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В Вашем файле применено условное форматирование. Выберите ячейку из диапазона (например "A2") и посмотрите какие применены условия и форматы.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 04.03.2013, 07:37   #8
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
В Вашем файле применено условное форматирование. Выберите ячейку из диапазона (например "A2") и посмотрите какие применены условия и форматы.
Здравствуйте! Не подскажите, как на весь столбец сделать такое условное форматирование?
Guren вне форума Ответить с цитированием
Старый 04.03.2013, 09:06   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Попробуйте выделить требуемый столбец, задать условное фориатирование с условием по формуле "=И(A2=A1;A2<>"")". Формат на шрифт, границы и вид задайте те же, что и в примере Вашего файла. Но, пусть лучше наши "формулисты" подскажут...
И еще:
Во-первых, при условном форматировании ячейки не объединяются. А Вы просили "объединить". Т.е. моя работа прошла впустую...
Во-вторых, подумайте, нужно ли Вам такое количество ячеек с условным форматированием?
В-третьих, макрос позволяет вставлять и объединять ячейки в произвольный диапазон. В то время как условное форматирование устанавливается для фиксированного диапазона.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 04.03.2013 в 09:13.
SAS888 вне форума Ответить с цитированием
Старый 04.03.2013, 09:56   #10
Guren
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Попробуйте выделить требуемый столбец, задать условное фориатирование с условием по формуле "=И(A2=A1;A2<>"")". Формат на шрифт, границы и вид задайте те же, что и в примере Вашего файла. Но, пусть лучше наши "формулисты" подскажут...
И еще:
Во-первых, при условном форматировании ячейки не объединяются. А Вы просили "объединить". Т.е. моя работа прошла впустую...
Во-вторых, подумайте, нужно ли Вам такое количество ячеек с условным форматированием?
В-третьих, макрос позволяет вставлять и объединять ячейки в произвольный диапазон. В то время как условное форматирование устанавливается для фиксированного диапазона.
Ваша работа не прошла впустую!!! Мне этот макрос помог только по одному столбцу по нажатию enter, а мне надо чтобы сразу обновлялись несколько столбцов...например А, В, К,Е
Нужно объединить весь столбец диапазона конкретного нет.....заранее не знаю количество строк....
Значит условное форматирование мне не поможет....или я не правильно понимаю?

Последний раз редактировалось Guren; 04.03.2013 в 13:25.
Guren вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет суммы ячеек с разных страниц при выполнении условия sttafi Microsoft Office Excel 27 07.12.2012 17:50
Срабатывание разных макросов при изменении разных диапазонов на листе strannick Microsoft Office Excel 2 26.03.2012 18:28
Сводная таблица разных ячеек из разных файлов vik74 Microsoft Office Excel 2 23.01.2011 20:53
Объединение данных из разных Файлов на разных листах одной книги Nikodim113 Microsoft Office Excel 20 12.01.2011 07:12
Подсчет ячеек в именнованных диапазонах kinogruppa Microsoft Office Excel 4 14.08.2010 11:49