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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2009, 10:56   #1
ing60
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 14
По умолчанию Объединение ячеек

Добрый день! Подскажите, как объединить ячейки с повторяющимися одинак.значениями в одном столбце (им соответствуют различные значения в других столбцах). Т.е. неск. одинак. строк в первом столбце - объединить в 1 ячейку.

Последний раз редактировалось ing60; 23.10.2009 в 06:54.
ing60 вне форума Ответить с цитированием
Старый 22.10.2009, 11:03   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как объединить ячейки с повторяющимися одинак.значениями в одном столбце
Например, вручную.

Если нужен макрос - будьте любезны выложить пример файла...
EducatedFool вне форума Ответить с цитированием
Старый 22.10.2009, 11:09   #3
ing60
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 14
По умолчанию

Значений в столбце несколько тысяч.
ing60 вне форума Ответить с цитированием
Старый 22.10.2009, 11:11   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от ing60 Посмотреть сообщение
Значений в столбце несколько тысяч.
Это следует понимать как нежелание объединять ячейки вручную?

Тогда подождите несколько дней - прежде чем написать макрос, мне понадобится время на подготовку тестового файла...
EducatedFool вне форума Ответить с цитированием
Старый 22.10.2009, 11:15   #5
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию Объединенные ячейки - зло для XL! Но ...

Цитата:
Сообщение от ing60 Посмотреть сообщение
Добрый день! Подскажите, как объединить ячейки с повторяющимися одинак.значениями в одном столбце (им соответствуют различные значения в других столбцах)...
Лучше таблицу не ломать, а сделать сводную и далее работать с ней.
Volodshan вне форума Ответить с цитированием
Старый 22.10.2009, 11:32   #6
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Маленький пример сравнения двух ячеек - текущей и что ниже при совпадении значения объединяет. По такому принципу можно создать поиск смежных диапазонов с одинаковыми значениями и затем объединять найденное. НО возникает два вопроса - как подавить навязчивое сообщение о потере данных в ячейках (я этого не знаю - не было надобности) и по какому событию или по какой команде запускать такую приблуду

Этот макрос необходимо скопировать на лист в редакторе VBA, реакция на двойной клик мыши:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error Resume Next
If Target.Item(1).Value = Target.Item(1).Offset(1, 0).Value Then Range(Target, Target.Offset(1, 0)).Merge
End If
End Sub

Без примера ничего другого предложить не могу.
Владимир
VovaKl вне форума Ответить с цитированием
Старый 22.10.2009, 11:36   #7
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Виноват даже не посмотрел выложенная процедура с реакцией на выбор ячейки, это не совсем удобно, вот на двойной клик:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error Resume Next
If Target.Item(1).Value = Target.Item(1).Offset(1, 0).Value Then Range(Target, Target.Offset(1, 0)).Merge
End If
End Sub
VovaKl вне форума Ответить с цитированием
Старый 22.10.2009, 11:42   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub MergeCls()
  r1 = 1
  r2 = 1
  Do
    If Cells(r1, 1) <> Cells(r2 + 1, 1) Then
      If r1 <> r2 Then
        Range(Cells(r1 + 1, 1), Cells(r2, 1)).ClearContents
        Range(Cells(r1, 1), Cells(r2, 1)).MergeCells = True
      End If
      r1 = r2 + 1
    End If
    r2 = r2 + 1
  Loop Until Cells(r2, 1) = ""
End Sub
обьединит идущие подряд одинаковые ячейки в первом столбце. работает до первой пустой ячейки в первой колонке.
2 VovaKl:
Цитата:
как подавить навязчивое сообщение о потере данных в ячейках (я этого не знаю - не было надобности)
- очистить данные в обьединяемых ячейках кроме первой.
Цитата:
по какому событию или по какой команде запускать такую приблуду
- запуск вручную
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.10.2009, 11:58   #9
ing60
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 14
По умолчанию

Огромное спасибо всем за помощь!
ing60 вне форума Ответить с цитированием
Старый 22.10.2009, 12:06   #10
VovaKl
Пользователь
 
Аватар для VovaKl
 
Регистрация: 12.03.2009
Сообщений: 19
По умолчанию

Игорь, я прошу извинить меня, макрос понравился и я немножко подправил его для старта с активной ячейки:

Sub MergeCls()
Dim ri As Integer, r2 As Integer, Col As Integer
r1 = ActiveCell.Row
r2 = ActiveCell.Row
Col = ActiveCell.Column
Do
If Cells(r1, Col) <> Cells(r2 + 1, Col) Then
If r1 <> r2 Then
Range(Cells(r1 + 1, Col), Cells(r2, Col)).ClearContents
With Range(Cells(r1, Col), Cells(r2, Col))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
End If
r1 = r2 + 1
End If
r2 = r2 + 1
Loop Until Cells(r2, Col) = ""
End Sub
VovaKl вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение ячеек Помогите!!! Dmitriyq Microsoft Office Excel 1 22.07.2009 10:41
Объединение ячеек в строке slon_slon Microsoft Office Word 6 14.03.2009 23:08
Объединение ячеек Katherina_Koval Microsoft Office Excel 3 29.07.2008 06:53
Объединение ячеек в таблице SnakeMan Общие вопросы Delphi 2 01.04.2008 12:33
Объединение ячеек StringGrid Македонский Общие вопросы Delphi 1 15.11.2007 12:07