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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 14:12   #1
MrGB
Пользователь
 
Регистрация: 04.07.2010
Сообщений: 32
По умолчанию макрос для слияния двух таблиц

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

структура примерно такова:

Таблица1
1 | ABC | 2343
2 | CDE | 6574
3 | FGRT| 3465
4 | ABC | 2223
5 | ABC | 5676

Таблица2
1 | 343 | sad
1 | 232 | asd
2 | 123 | asd
3 | 233 | gre
4 | 222 | wer
4 | 676 | htt
4 | 123 | ewe
4 | 984 | etet
5 | 654 | vbf
MrGB вне форума Ответить с цитированием
Старый 04.07.2010, 14:43   #2
MrGB
Пользователь
 
Регистрация: 04.07.2010
Сообщений: 32
По умолчанию

примеры файлов во вложении
Вложения
Тип файла: rar excel.rar (13.4 Кб, 39 просмотров)
MrGB вне форума Ответить с цитированием
Старый 04.07.2010, 15:23   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Такой результат нужен? (к сожалению, output не открывается)
Код:
столбец1	столбец4	столбец5	столбец2	столбец3
1	234	sad	ABC	2343
1	544	asd	ABC	2343
2	654	asd	CDE	6574
3	346	gre	FGR	3465
4	764	wer	RGR	3231
4	543	tew	RGR	3231
4	343	qwe	RGR	3231
5	653	jyt	TYY	8752
5	546	wtr	TYY	8752
Получено файлом из http://hugo.nxt.ru/CompareFiles.Find.rar , настройки:
Код:
Файл - приёмник:	c:\Temp\MrGB\input2.xls
Файл - источник:	c:\Temp\MrGB\input1.xls
Столбцы сравнения в приёмнике:	a
Столбцы сравнения в источнике:	a
Лист - приёмник (№):	1
Лист - источник (№):	1
Столбцы - приёмники данных копирования:	d,e
Столбцы - источники данных копирования:	b,c
Нажать большую кнопку.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 04.07.2010 в 15:30.
Hugo121 вне форума Ответить с цитированием
Старый 04.07.2010, 16:04   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А вот что у меня получилось:
Код:
Sub GroupFiles()
    On Error Resume Next:    Dim sh1 As Worksheet, sh2 As Worksheet
    Set sh2 = ActiveSheet
    Set sh1 = GetAnotherWorkbook.Worksheets(1)
    If Err Then Exit Sub

    sh2.Copy
    Dim sh As Worksheet: Set sh = ActiveSheet:    sh.Range("b:c").Insert
    Dim RangeForPaste As Range
    Set RangeForPaste = Range([A2], Range("A" & Rows.Count).End(xlUp)).Offset(, 1).Resize(, 2)
    'RangeForPaste.Interior.Color = vbGreen

    f = "=ВПР($A2;" & sh1.UsedRange.Address(, , , True) & ";СТОЛБЕЦ();0)"
    RangeForPaste.FormulaLocal = f
    RangeForPaste.Value = RangeForPaste.Value
End Sub
Функция GetAnotherWorkbook взята отсюда: http://excelvba.ru/code/GetAnotherWorkbook


Порядок работы:
1) подключаем эту надстройку к Excel (меню Сервис - Надстройки)

2) открываем файл 1.xls
3) открываем файл 2.xls (он отображается на экране в момент запуска макроса)

4) нажимаем комбинацию клавиш Ctrl + Shift + 9 для запуска макроса
Вложения
Тип файла: zip addin.zip (18.6 Кб, 67 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2010, 23:31   #5
MrGB
Пользователь
 
Регистрация: 04.07.2010
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Такой результат нужен?
да именно такой, спасибо
MrGB вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос добавления названий для таблиц darklumen Microsoft Office Word 8 16.11.2010 23:00
Хранимая процедура для двух таблиц iloer БД в Delphi 0 26.05.2010 11:15
Нужен макрос для сравнения таблиц Silent_Hill Microsoft Office Excel 6 06.03.2010 19:37
макрос для склеивание двух текстовых файлов zenner Microsoft Office Word 1 09.10.2009 14:16
макрос для сводных таблиц jisu Microsoft Office Excel 4 05.05.2009 05:23