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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2019, 18:21   #21
Панчез
 
Регистрация: 04.03.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
сравните так:
Код:
Sub CompareRanges()
  Const cGreen& = 5287936, cYellow& = 65535
  Dim rg(1 To 2) As Range, r&, c&, i&, ic&
  On Error Resume Next
  Set rg(1) = Application.InputBox("Отметьте ПЕРВЫЙ диапазон", Type:=8): If Err Then End
  Set rg(2) = Application.InputBox("Отметьте ВТОРОЙ диапазон", Type:=8): If Err Then End
  On Error GoTo 0
  If rg(1).Rows.Count <> rg(2).Rows.Count Or rg(1).Columns.Count <> rg(2).Columns.Count Then
    MsgBox "Вы отметили кривые диапазоны!", vbCritical, "Аварийнре завершение": Exit Sub
  End If
  Application.ScreenUpdating = False
  For r = 1 To rg(1).Rows.Count
    For c = 1 To rg(1).Columns.Count
      ic = IIf(rg(1).Cells(r, c) = rg(2).Cells(r, c), cGreen, cYellow)
      For i = 1 To 2: rg(i).Cells(r, c).Interior.Color = ic: Next
    Next
  Next
  Application.ScreenUpdating = True
End Sub

Потрясающе IgorGO код отлично работает! Вы превзошли все мои ожидания!) Спасибо. Это именно то что и требовалось реализовать. Конечно же я сделаю вклад в поддержку и развитие через яндекс.м.. Можно еще немного улучшить механизм сравнения? Сейчас сравнивает все разряды ячейки, например: в ячейке отображено значение 1,2 (это округлено), если нажать на эту ячейку то в ней: 1,178565 или формула которая при вычислении дает тоже много не округленных разрядов. Можно ли сравнивать именно то значение, которое отображено в ячейке (округленное) так сказать, на поверхности, а не внутри? И можно еще не сравнивать пустые ячейки?
А так код супер лаконичный и удобный функционал.
Панчез вне форума Ответить с цитированием
Старый 06.03.2019, 19:55   #22
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub CompareRanges()
  Const cGreen& = 5287936, cYellow& = 65535
  Dim rg(1 To 2) As Range, r&, c&, i&, ic&
  On Error Resume Next
  Set rg(1) = Application.InputBox("Отметьте ПЕРВЫЙ диапазон", Type:=8): If Err Then End
  Set rg(2) = Application.InputBox("Отметьте ВТОРОЙ диапазон", Type:=8): If Err Then End
  On Error GoTo 0
  If rg(1).Rows.Count <> rg(2).Rows.Count Or rg(1).Columns.Count <> rg(2).Columns.Count Then
    MsgBox "Вы отметили кривые диапазоны!", vbCritical, "Аварийнре завершение": Exit Sub
  End If
  Application.ScreenUpdating = False
  For r = 1 To rg(1).Rows.Count
    For c = 1 To rg(1).Columns.Count
      If rg(1).Cells(r, c) <> rg(1).Cells(r, c).Text Then
        ic = IIf(rg(1).Cells(r, c).Text = rg(2).Cells(r, c).Text, cGreen, cYellow)
      Else
        ic = IIf(rg(1).Cells(r, c) = rg(2).Cells(r, c), cGreen, cYellow)
      End If
      If Not IsEmpty(rg(1).Cells(r, c)) Or (Not IsEmpty(rg(2).Cells(r, c))) Then
        For i = 1 To 2: rg(i).Cells(r, c).Interior.Color = ic: Next
      End If
    Next
  Next
  Application.ScreenUpdating = True
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.03.2019, 08:08   #23
Панчез
 
Регистрация: 04.03.2019
Сообщений: 4
По умолчанию

Большое спасибо!
Панчез вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух таблиц w00t Microsoft Office Excel 5 16.03.2012 00:22
Сравнение 2-х ячеек, выделение цветом пустой Alex5667 Microsoft Office Excel 3 07.10.2011 15:06
Сравнение ячеек из разных таблиц pechenushka_xxx Microsoft Office Excel 4 28.01.2011 10:19
сравнение двух таблиц Iskin Microsoft Office Excel 3 08.12.2010 07:18
Сравнение двух таблиц scaramangi Microsoft Office Excel 0 17.09.2009 17:15