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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2020, 11:42   #1
skrpv1
Новичок
Джуниор
 
Регистрация: 29.01.2020
Сообщений: 2
По умолчанию Сравнение значений двух таблиц на 2 листах в одной книге.

Возникла задача, сравнить две таблицы на соответствие числовых значений. Две таблицы отчётности, в ячейках значения примерно с 10 знаками после запятой. Если есть несоответствие в какой-то ячейке, нужно подкрасить её, либо подкрасить все ячейки, где значения соответствуют. Есть макрос на сравнение, но он возможно не точно сравнивает, т.к. бывает, что значения в одной и той же ячейке в двух таблицах идентичные, но отмечает как несоответствие. Хотелось бы узнать у знающих, в чём может быть проблема.
Код:
Private Sub Find_Matches()
    Dim CompareRange As Range, x As Range, y As Range
    Set CompareRange = Worksheets("Лист2").Range("B8:S295") 'диапазон с которым сравнивают
    
    Application.ScreenUpdating = False
    Selection.Interior.ColorIndex = xlNone
    
    For Each y In CompareRange
        If Not IsEmpty(y) Then
           For Each x In Selection
               If InStr(1, x, y, vbTextCompare) > 0 Then x.Interior.Color = vbGreen
           Next x
        End If
    Next y
    
    Application.ScreenUpdating = True
    
    MsgBox "Данные проверены"
End Sub
В данном макросе выделяется первый проверяемый диапазон, в самом макросе прописывает диапазон ячеек, с которым нужно сравнить. Данный макрос также был взять из нета, часть понимаю, но углубленно нет т.к. в vba человек новый. Всем спасибо.
Вложения
Тип файла: xlsx Для форума.xlsx (14.6 Кб, 3 просмотров)

Последний раз редактировалось skrpv1; 29.01.2020 в 14:38.
skrpv1 вне форума Ответить с цитированием
Старый 29.01.2020, 12:22   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Так а где файл примера с тестовыми данными для сравнения?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.01.2020, 14:38   #3
skrpv1
Новичок
Джуниор
 
Регистрация: 29.01.2020
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Так а где файл примера с тестовыми данными для сравнения?
Извиняюсь, файл прикрепил.
skrpv1 вне форума Ответить с цитированием
Старый 30.01.2020, 04:44   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

посмотрите файл
Исхлдные:
в А1 написано 00:00:00
в В1 написано 00:00:01 (это 1 сек. ячейка В1 названа Сек)
Расчет:
в А2 написано =А1+Сек (соотв. видите результа 00:00:01)
в В2 написано =А2-А1 =Сек (если от А2 отнять А1 это будет секунда?) и видите ответ ИСТИНА
а что же может быть? подумаете вы, если только что А2 было получено как А1 + Секунда, естественно А2-А1 = Секунда

но, не торопитесь с выводами:
я отметил А2 и В2 и за правый нижний уголок потянул вниз
и тут, о чудо! в В87 появилась ЛОЖЬ! т.е. 00:01:25 - 00:01:24 - еще было равно Секунда
а 00:01:26 - 00:01:25 УЖЕ НЕ РАВНО секунде, хотя минута 26 сек., была получена как минута 25 сек. + Секунда

Изучайте мат.часть
о стандарте хранения чисел с плавающей точкой в компьютере сказано и написано в инете очень много, но постоянно находятся люди, для которых это откровение! а для некоторых полный шок!
хотите сравнивать числа с плавающей точкой, сравнивайте их с определенной точностью. см. формулу в С87
если ваша функция пишет что значения не равны - значит они не равны!
Вложения
Тип файла: xlsx Секунда.xlsx (19.7 Кб, 5 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 30.01.2020 в 04:47.
IgorGO вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух таблиц MySQL и удаление повторяющихся значений Tagir93 SQL, базы данных 9 23.08.2017 15:34
сравнение данных на двух листах с уловием Альбина Бурана Microsoft Office Excel 2 20.02.2015 14:18
Сравнение столбцов двух таблиц и копирование значений из одной в другую. cxx Microsoft Office Excel 2 10.02.2014 13:59
Сравнение значений на двух листах, более 80 000 строк. Hoochara Microsoft Office Excel 3 15.06.2012 13:12
Сравнение листов в книге, и копирование значений Josser Microsoft Office Excel 10 22.07.2009 08:26