powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение диапазонов.
5 сообщений из 5, страница 1 из 1
Сравнение диапазонов.
    #37630542
CS_Demon_SL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть макрос, сравнивает 2 диапазона, по 2 столбца каждый (соответствие сначала А1-С1, затем В1-D1). В первом столбце текст, во втором число. Несоответствия выделяются цветом. Данный макрос работает неверно в некоторых случаях выделяет одинаковые ячейки как несоответствующие, проверял эти выделенные ячейки формулой "СОВПАД"-одинаковые, а макрос выделяет как разные. Может что с форматированием, проверяемые Диапазоны копируются из файлов, которые заполняются иногда копи-пастом. Помогите Найти ошибку или доработать макрос, он мне через 12 часов ппц как нужен рабочий!

End Sub
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Find_Matches()
  MsgBox "Процедура Find_Matches вызвана"
  Dim CompareRange As Variant, x As Variant, y As Variant
  Dim R3 As Range
  Dim R4 As Range
  Set R4 = Range("A1:C100")
  Set R3 = Range("E1:G100")
  'R4.Select
  'Set CompareRange = R3
  For i = 1 To R4.Rows.Count
    Flag = 0
    For j = 1 To R3.Rows.Count
      If ((R4.Cells(i, 2) <> "") And (R3.Cells(j, 2) <> "")) Then
        If ((R4.Cells(i, 1) = R3.Cells(j, 1)) And (CDbl(R4.Cells(i, 2)) = CDbl(R3.Cells(j, 2)))) Then
          Flag = Flag + 1
        End If
      End If
    Next j
    If (Flag = 0) Then
      Range(R4.Cells(i, 1), R4.Cells(i, 2)).Interior.ColorIndex = 5
    End If
  Next i
End sub
...
Рейтинг: 0 / 0
Сравнение диапазонов.
    #37630545
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CS_Demon_SL,

файл-то где?
...
Рейтинг: 0 / 0
Сравнение диапазонов.
    #37630578
CS_Demon_SL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Вот файлик
...
Рейтинг: 0 / 0
Сравнение диапазонов.
    #37630593
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это из-за плавающей запятой в Double
предлагаю в такой редакции:
Код: vbnet
1.
    If ((R4.Cells(i, 1) = R3.Cells(j, 1)) And Abs(CDbl(R4.Cells(i, 2)) - CDbl(R3.Cells(j, 2))) < 0.0001) Then
...
Рейтинг: 0 / 0
Сравнение диапазонов.
    #37630612
CS_Demon_SL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо громадное! Думал уже ночь не спать )))) Все как по нотам заработало!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение диапазонов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]