Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 22

Сравнение 2 книг в Excel и копирование найденых пар в третью книгу / VBA

18.01.2014, 21:25. Показов 5352. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток!!!!
Обращаюсь ко всем за помощью...
Есть 2 книги в Excel (в примере по 4 строчки с данными, но нужно будет обрабатывать 1000 - 10000 аналогичных строк), в которых необходимо сравнить столбцы первой книги 5,6,7 со столбцами второй книги 3,6,7 на полное совпадение (5=3, 6=6, 7=7). Если такие совпадения есть, то строки с так называемыми парами нужно полностью скопировать в 3-ю книгу.
Если в строчке нет совпадений, то ее тоже нудно перенести в третью книгу но после строчки оставить пустую строку.
Жду на вашу помощь!!)) Заранее всем спасибо!
Вложения
Тип файла: xls Книга1.xls (30.5 Кб, 25 просмотров)
Тип файла: xls Книга2.xls (30.5 Кб, 20 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2014, 21:25
Ответы с готовыми решениями:

Сравнение 2 книг в Excel и копирование дублей в третью книгу
Доброго всем времени суток, нужна помощь!!!! Имеются 2 книги в Excel в которых необходимо сравнить стобцы 5,6,7 и 8 на полное совпадение, и...

Сравнение двух книг с записью разницы значений в третью книгу
Доброго времени суток. С VBA познакомился неделю назад, и поэтому следующая задача оказалась для меня трудноватой. Итак: существует файл...

Сравнение 2-х Книг по первому столбцу и вывод совпавших значений( всю строку) в 3-ю книгу - MS Excel
Всем Добрый день! Помогите пожалуйста с формулой или может здесь макрос нужен!? Имеется. 1 книга. Есть номера домов( некий перечень),...

43
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
23.01.2014, 22:19
Студворк — интернет-сервис помощи студентам
Можно. Но без словаря больно хлопотно.
Можно реализовать через фильтры. Но корявенько будет.
Лучше разобраться со словарём. Так будет элегантнее

Добавлено через 55 минут
Коротко. Что непонятно - уточняй. Можно по справочницу функций
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub QWERT_без_словаря() 'процедура
'Объявление переменных
Dim WB0 As Workbook
Dim WB1 As Workbook
Dim WB2 As Workbook
Dim R1, R2, T1, T2, J, c
Dim SH1 As Worksheet, SH2 As Worksheet
Dim M1(), M2(), U()
'назначение переменных
Set WB0 = ActiveWorkbook
Set WB1 = Application.Workbooks.Open(WB0.Path & "\Книга1.xls") 'с открытием книги находящейся рядом
Set WB2 = Application.Workbooks.Open(WB0.Path & "\Книга2.xls") '
Set SH1 = WB1.Worksheets(1): Set SH2 = WB2.Worksheets(1) 'назначение листов книг
M1 = SH1.UsedRange: M2 = SH2.UsedRange 'считывание в массив данных
WB1.Close: WB2.Close 'закрытик книг
Set WB1 = Nothing: Set WB2 = Nothing 'освобождение памяти
 
With WB0.Worksheets(1) 'работаем с первым пистом начальной книги
    .Cells.ClearContents 'очищаем полностью лист
    J = 1 'назначаем номер строки
    
    For R1 = 2 To UBound(M1) ' по всем записям первого массива (первой книги)
     T1 = M1(R1, 5) & ":" & M1(R1, 6) '& ":" & M1(R1, 7)' собираем строку сравнения из нужных столбцов
        For R2 = 2 To UBound(M1) 'по всем записям второго массива (второй книги)
            T2 = M2(R2, 3) & ":" & M2(R2, 6) '& ":" & M2(R2, 7)'собираем строку сравнения из нужных столбцов
                 If T2 = T1 Then 'сравниваем. Можно было бы не собирать, а сравнивать непосредственно строки сборки. Но так нагляднее
'                    если строки равны
                    J = J + 1 'переводим строку
                    For c = 1 To UBound(M1, 2) 'и переписываем на лист строку из первой книги
                        .Cells(J, c) = M1(R1, c)
                        .Cells(J + 1, c) = M2(R2, c)
                    Next c
                    J = J + 1
                    GoTo 1 ' перход к следующей строке массива 1
'                Else
 
                End If
        Next R2
'        если совпадения не нашли - записываем строку из первой книги
        J = J + 1 '
        For c = 1 To UBound(M1, 2) '
            .Cells(J, c) = M2(R1, c)
        Next c
        J = J + 1
1
    Next R1 '
End With '
 
End Sub
Добавлено через 3 минуты
Visual Basic
1
 T1 = M1(R1, 5) & ":" & M1(R1, 6) '& ":" & M1(R1, 7)
А что от суммы ничего не зависит? Только ISO?
0
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 22
24.01.2014, 10:54  [ТС]
Значит суммы не нужно, потому что теперь будет 3 строчки. Для нашей 1-й строки, которой мы ищем пару будет две строчки пары. И сума 1 будет ровна сумме (2+3).

Добавлено через 2 минуты
Я попробую разобратся со словарем, а вы если не трудно сделайте для начала "карявенько"
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.01.2014, 17:51
вот
Вложения
Тип файла: rar 7.rar (26.0 Кб, 9 просмотров)
1
1 / 1 / 0
Регистрация: 15.01.2014
Сообщений: 22
25.01.2014, 02:02  [ТС]
Всем огромное спасибо!!!)) Я еще немного переделала и в итоге получилось так как я и хотела
Добавляю готовый вариант, тем кому интересно

И еще раз СПАСИБО!!!!!!!!!!
Вложения
Тип файла: rar готовий макрос.rar (28.2 Кб, 24 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2014, 02:02

Сравнение 2-х Книг по первому столбцу и вывод совпавших значений( всю строку) в 3-ю книгу
Всем Добрый день! Помогите пожалуйста с формулой или может здесь макрос нужен!? Имеется. 1 книга. Есть номера домов( некий перечень),...

Сбор данных из различных книг Excel и их вывод в результирующую книгу с транспонированием
Всем привет! Подскажите пожалуйста! 1. возможно ли организовать перебор файлов в папке и вывод их имен в столбец НО без указания ...

Excel: Копирование из других книг в текущую
Здравствуйте. Помогите, пожалуйста. Каков в Excel принцип копирования из других книг в текущую. (Мне нужно перебрать 2500 файлов и...

Сравнение двух таблиц и копирование в третью таблицу разницу в данных
Здравствуйте уважаемые форумчане и все спецы по Access. Выкладываю базу с надеждой на вашу помощь. Есть 2 таблицы. Из первой копируются все...

Сравнение 2 столбцов разных книг excel
Нужно сравнить 2 столбца 2 разных листов excel, но так чтобы общие совпадения копировались из первого листа, и не одним столбцом а всей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru