Сравнение двух столбцов и, если они совпадают, оба столбца должны быть выделены

У меня есть две колонки J и L.

Если значение столбца J совпадает с соответствующим значением столбца L, обе ячейки должны быть выделены красным цветом.

Я новичок в этом Excel. Я не могу разработать этот макрос.

Я попробовал приведенный ниже код, но он выделяет столбцы J, K и L, если он совпадает. Я хочу, чтобы были выделены только столбцы J и K, а также этот макрос должен начать проверку с J11 и L11.

Sub test()    
    Dim LastRow As Long, i As Long
    Dim arr As Variant

    With ThisWorkbook.Worksheets("Sheet1")    
        LastRow = .Cells(.Rows.Count, "J").End(xlUp).Row    
        arr = .Range("J2" & ":L" & LastRow)

        For i = LBound(arr) To UBound(arr)    
            If arr(i, 1) = arr(i, 3) Then    
                .Range("J" & i + 1 & ":L" & i + 1).Interior.Color = vbRed    
            End If    
        Next i    
    End With    
End Sub

Есть опция условного форматирования для поиска дубликатов. Может ли это быть полезным для вас?

Damian 27.05.2019 11:32
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
1
53
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, что это желаемый результат:

Sub test()
    Dim LastRow As Long, i As Long
    Dim arr As Variant

    With ThisWorkbook.Worksheets("Sheet1")
        LastRow = .Cells(.Rows.Count, "J").End(xlUp).Row
        arr = .Range("J2" & ":L" & LastRow)

        For i = LBound(arr) To UBound(arr)
            If arr(i, 1) = arr(i, 3) Then
                .Range("J" & i + 1).Interior.Color = vbRed
                .Range("L" & i + 1).Interior.Color = vbRed
            End If
        Next i
    End With
End Sub

Просто возьмите их отдельно.

Ответ принят как подходящий

проверьте, это то, что вы хотите

Sub test()
    Dim LastRow As Long, i As Long
    Dim arr As Variant

    With ThisWorkbook.Worksheets("Sheet1")
        LastRow = .Cells(.Rows.Count, "J").End(xlUp).Row
        arr = .Range("J11" & ":L" & LastRow)

        For i = LBound(arr) To UBound(arr)
            If arr(i, 1) = arr(i, 3) Then
                .Range("J" & i + 10 & ":J" & i + 10).Interior.Color = vbRed
                .Range("L" & i + 10 & ":L" & i + 10).Interior.Color = vbRed
            End If
        Next i
    End With
End Sub

он начинает проверку с 11 строки

  1. Выберите диапазон с данными
  2. Главная - Стили - Условное форматирование
  3. Новое правило — используйте формулу, чтобы определить, какие ячейки форматировать
  4. Отформатируйте значения, где эта формула верна:

    =$J1=$L1

  5. Формат - Заливка - выберите свой цвет

  6. Изменение применяется к (область, к которой будет применяться форматирование)

Правило:

Результаты:

Другие вопросы по теме