Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Gorr98
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 4
1

Сравнение двух диапазонов на несовпадение

29.06.2016, 17:59. Просмотров 815. Ответов 6

Подскажите пожалуйста, как организовать поиск на несовпадение?
На первом листе таблицу надо сравнить с таблицей на втором листе. Если найдены несовпадения, добавить не совпавшее значение в таблицу на первом листе.
То есть если во второй таблице находится такое значение, которого нет в первой, необходимо добавить его в первую таблицу.

У меня как-то криво все вышло =(
0
Вложения
Тип файла: rar П3.rar (18.5 Кб, 10 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2016, 17:59
Ответы с готовыми решениями:

Сравнение двух диапазонов по последней строке
Здравствуйте, Проблема такова. Необходимо сравнить значения в последних строках двух диапазонов,...

Сравнение двух диапазонов ячеек на совпадение
Здравствуйте! Подскажите пожалуйста... Имеется 2 диапазона ячеек А1:A3 и C1:C3, в которых забиты...

Сравнение двух диапазонов и вывод различий на другой лист
Добрый день уважаемые форумчане! Нашёл в инете такой вот код: Option Explicit Sub...

Сравнение двух диапазонов на идентичность без анализа отдельных ячеек
Здравствуйте! Подскажите, как сравнить два диапазона на результат ЛОЖЬ или ИСТИНА (в коде 10-я...

Сравнение диапазонов ячеек
Здравствуйте! Простая задача сравнить два диапазона ячеек(A1:A3 и C1:C5), если в одном диапазоне...

6
Hugo121
6527 / 2525 / 453
Регистрация: 19.10.2012
Сообщений: 7,583
29.06.2016, 20:04 2
Добавить всё и затем удалить дубликаты чем не вариант?
Тем более что Ваш монстр работает криво - добавляет и добавляет...
0
fever brain
oh my god
1383 / 738 / 154
Регистрация: 05.01.2016
Сообщений: 2,237
Записей в блоге: 7
29.06.2016, 20:24 3
Мой вариант: (в вариант от Gorr98, было тяжело смотреть ..)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Сравнение()
    Dim r1 As Range, r2 As Range, v, w, i&
    With Sheets(1)
        Set r1 = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1))
    End With
    With Sheets(2)
        Set r2 = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1))
    End With
 
    For Each v In r1
        For Each w In r2
            If v = w Then GoTo 1
        Next
        i = i + 1: Sheets(1).Cells(i, 3) = v
1
    Next
    MsgBox (Choose(Sgn(i) + 1, "Всё совпало", "Имеются различия смотрите колонку [C]"))
End Sub
Добавлено через 5 минут
Цитата Сообщение от Hugo121 Посмотреть сообщение
Тем более что Ваш монстр работает криво - добавляет и добавляет...
Похоже он выложил заведомо кривой вариант с уже добавленными числами на листе, если как он хочет
то всё совпадёт

Сравниваем второй лист с первым наоборот:
Visual Basic
1
2
3
4
5
6
7
    For Each v In r2
        For Each w In r1
            If v = w Then GoTo 1
        Next
        i = i + 1: Sheets(1).Cells(i, 3) = v
1
    Next
На всякий случай, новые значения у меня пишутся в другую колонку
0
IgorTS
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 25
29.06.2016, 21:12 4
Извиняюсь, что не по теме.
fever brain, проверьте почту
0
Hugo121
6527 / 2525 / 453
Регистрация: 19.10.2012
Сообщений: 7,583
29.06.2016, 21:16 5
Я сделал как написал - сложил и удалил. И затем выполнил код - и он дописал ниже данные, которые уже есть выше.
Почему так - не знаю, в код не вникал - испугался...

P.S. Я обычно такое решаю через словарь, и используя массивы - но на небольшом количестве можно и циклы гонять, зато просто и красиво
0
Gorr98
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 4
30.06.2016, 00:23  [ТС] 6
Спасибо, господа!
Я, как многие обращающиеся к вам, новичок, и леплю пока все без разбора, а потом пугаюсь.

Да, мой монстр и добавлял все подряд и сообщения на каждую строку писал, вот я и не знал, куда тыкаться)
0
fever brain
30.06.2016, 05:15     Сравнение двух диапазонов на несовпадение
  #7

Не по теме:

Цитата Сообщение от IgorTS Посмотреть сообщение
Извиняюсь, что не по теме.
fever brain, проверьте почту
Увидел

0
30.06.2016, 05:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2016, 05:15
Привет! Вот еще темы с ответами:

Сравнение диапазонов на НЕ полное совпадение
Здравствуйте! Мне требуется помощь в сравнении двух диапазонов. Находятся диапазоны на...

Сравнение диапазонов и заливка совпавших записей
Проблема в следующем: На листе1 книги имеется несколько блоков с данными (Дата, фамилия, и...

Отбор уникальных данных из двух диапазонов
Доброе времени суток, Господа! Помогите мне автоматизировать свод базы данных, для месячной...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.