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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2009, 16:03   #1
Pimalux
 
Регистрация: 14.07.2009
Сообщений: 5
По умолчанию Объединение яйчеек по номерам

Добрый день всем.
Нужна подсказка, как можно проделать следующую операцию.
Есть массив данных, в котором встречаются повторяющиеся порядковые номера. Строчки с такими номерами отличаются лишь значением в одном из столбцов массива.
Каким образом можно получить таблицу, в которой повторяющихся номеров не будет, а значения соответствующие им будут сцеплены в одной яйчейке.
Заранее спасибо, извиняюсь за немного мутные объяснения и прилагаю пример.
Пример.zip
Pimalux вне форума Ответить с цитированием
Старый 15.07.2009, 07:32   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Запустите макрос "Main"
Вложения
Тип файла: rar Пример_2.rar (33.9 Кб, 18 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 15.07.2009, 10:27   #3
Pimalux
 
Регистрация: 14.07.2009
Сообщений: 5
По умолчанию

Вот спасибо!!! А что можно прописать в макросе, что бы он еще и суммировал цифры по столбцу количество? Вы не представляете как это облегчит мне жизнь=)
Pimalux вне форума Ответить с цитированием
Старый 15.07.2009, 10:53   #4
Pimalux
 
Регистрация: 14.07.2009
Сообщений: 5
По умолчанию

Sub Main()

Dim i As Long: Application.ScreenUpdating = False
For i = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
If Cells(i, 1) = Cells(i - 1, 1) Then
Cells(i - 1, 6) = Cells(i - 1, 6) + Cells(i, 6):
Cells(i - 1, 4) = Cells(i - 1, 4) & " " & Cells(i, 4): Rows(i).Delete
End If
Next

End Sub
Так правильно?
Pimalux вне форума Ответить с цитированием
Старый 15.07.2009, 11:45   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Так правильно?
Вообще-то, на этот вопрос лучше Вас никто не ответит.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 15.07.2009, 12:12   #6
Pimalux
 
Регистрация: 14.07.2009
Сообщений: 5
По умолчанию

В таком случае огромное человеческое спасибо за помощь.
Единственная проблема - когда в объединенных яйчейках сцепляются более 40 значений, то Excel показывает лишь #######. Это программное ограничение на длину текста, или с этим что-то можно сделать?
Pimalux вне форума Ответить с цитированием
Старый 15.07.2009, 12:40   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Есть у Excel такой баг. И объединенные ячейки здесь ни при чем.
Попробуйте (для Вашего примера) так:
Код:
Sub Main()
    Dim i As Long: Application.ScreenUpdating = False
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
        If Cells(i, 1) = Cells(i - 1, 1) Then
            Cells(i - 1, 6) = Cells(i - 1, 6) + Cells(i, 6)
            Cells(i - 1, 4) = Cells(i - 1, 4) & " " & Cells(i, 4): Rows(i).Delete
        End If
    Next
    With [L:L]
        [D:D].Copy
        .PasteSpecial Paste:=xlPasteValues
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = True
        .Cut [D1]
        [A1].Select
    End With
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 15.07.2009, 13:06   #8
Pimalux
 
Регистрация: 14.07.2009
Сообщений: 5
По умолчанию

Работает!!!
Еще раз спасибо.
Захотите построить деревянный дом - обращайтесь, помогу с проектом.=)
Pimalux вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение БД Georgios БД в Delphi 3 25.01.2009 20:18
объединение матриц eHappy Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2008 00:36
Объединение ячеек Katherina_Koval Microsoft Office Excel 3 29.07.2008 06:53
Объединение заказов asale Microsoft Office Excel 6 22.10.2007 19:05
Программа рассылки сообщений по номерам ICQ Romanus Софт 7 09.06.2007 11:52