Хобрук: Ваш путь к мастерству в программировании

Сравнение столбцов и выделение совпадающих данных с помощью Excel VBA

Мне нужно сравнить Column B в Sheet 2 с Column C в Sheet 3 и выделить ячейки с совпадающими данными в Column B (Sheet 2).

Использовали следующую формулу в условном форматировании

который работает =NOT(ISNA(VLOOKUP(Sheet3!C,Sheet2!B,1,FALSE))) с типом формата, являющимся

конкретный цвет, скажем желтый Interior.colorindex = 6

Как реализовать то же самое, используя код в VBA?

27.08.2013

Ответы:


1

вы можете сделать это так

Sub CompareAndHighlight()

    Dim rng1 As Range, rng2 As Range, i As Long, j As Long
    For i = 1 To Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row
        Set rng1 = Sheets("Sheet2").Range("B" & i)
        For j = 1 To Sheets("Sheet3").Range("C" & Rows.Count).End(xlUp).Row
            Set rng2 = Sheets("Sheet3").Range("C" & j)
            If StrComp(Trim(rng1.Text), Trim(rng2.Text), vbTextCompare) = 0 Then
                rng1.Interior.Color = RGB(255, 255, 0)
            End If
            Set rng2 = Nothing
        Next j
        Set rng1 = Nothing
    Next i

End Sub

код проверяет все ячейки в столбце B листа 2 по каждой ячейке столбца C листа 3, и если они совпадают, он выделяет ячейки на листе 2 в столбце B желтым цветом.

27.08.2013
  • Кодекс работает хорошо. Я не сформулировал свой вопрос более четко. Приведенный выше код сравнивает, например, b2 на листе 2 с c2 на листе 3 и так далее. Я хотел бы, чтобы каждое значение на листе 3 проверялось на соответствие всем значениям в другом столбце. Для чего потребуется еще один цикл. Не могли бы вы отредактировать код, чтобы добавить вышеупомянутую спецификацию и обработку ошибок для пустых ячеек? 27.08.2013
  • Я отредактировал код для вас, чтобы он перебирал все ячейки в столбце C на Sheet3. Что вы имеете в виду под обработкой ошибок для пустых ячеек? 27.08.2013

  • 2

    Я бы сделал это так:

    Dim c As Range
    
    For Each c In Range("sheet2!b:b")
        If c.Value <> "" And Sheets("Sheet3").Cells(c.Row, 3).Value = c.Value Then
            c.Interior.Color = vbYellow
        End If
    Next
    
    27.08.2013
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..