Сравните ells A3 и A2, если они равны, ничто иное, как цветная строка 3 ячейки A, хотя F. Повторите следующую строку

У меня есть список контрактов ниже строки заголовка. Некоторые контракты занимают несколько строк.

Я хотел бы иметь макрос VBA, который будет сравнивать ячейки A3 с A2. Если они одинаковы; следующий. Если они разные, выберите ячейки A3: F3 и измените Interior.Color на серый.

Затем сравните A4 с A3, затем с A5 по A4 и повторите для всех используемых ячеек в столбце A, эффективно создав таблицу.

Это выглядит так:

Row Column A Column BCDEF 1. 000000 (Info) (Info) (Info) (Info) (Info) 2. 111111 (Info) (Info) (Info) (Info) (Info) 3. 123456 (Info) (Info) (Info) (Info) (Info) 4. 123456 (Info) (Info) (Info) (Info) (Info) 5. 654321 (Info) (Info) (Info) (Info) (Info) 6. 124536 (Info) (Info) (Info) (Info) (Info) 7. 666666 (Info) (Info) (Info) (Info) (Info) 

Я бы хотел увидеть:

 1. 000000 (Info) (Info) (Info) (Info) (Info) 'line is clear 2. 111111 (Info) (Info) (Info) (Info) (Info) 'line is grey 3. 123456 (Info) (Info) (Info) (Info) (Info) 'line is clear 4. 123456 (Info) (Info) (Info) (Info) (Info) 'line is clear 5. 654321 (Info) (Info) (Info) (Info) (Info) 'line is grey 6. 124536 (Info) (Info) (Info) (Info) (Info) 'line is clear 7. 666666 (Info) (Info) (Info) (Info) (Info) 'line is grey 

Я потратил свой день на поиски и нашел (и работал над следующим скриптом, однако он только окрашивает первую ячейку в строке.

 Sub Line_Shading() Application.ScreenUpdating = False Dim this As Variant Dim previous As Variant Dim currentColor As Long Dim rng As Range Dim a As Range ' pick a color to start with currentColor = 14277081 ' 14277081 Grey or 16777215 Clear ' rng = used and visible cells Set rng = Range("A2:A" & Range("A2").End(xlDown).Row) For Each a In rng If Not a.Row = 1 Then ' skip header row this = a.Value 'some simple test logic to switch colors If this <> previous Then If currentColor = 14277081 Then currentColor = 16777215 ElseIf currentColor = 16777215 Then currentColor = 14277081 End If End If 'set interior color a.Interior.color = currentColor 'Interior.Color previous = this End If Next a Application.ScreenUpdating = True End Sub 

Я чувствую, что это будет просто модификация строки: a.Interior.color = currentColor 'Interior.Color, но я просто не вижу решения.

Предложения?

если вам это интересно, это можно сделать с условным форматированием по следующей формуле:

 =ISEVEN(SUMPRODUCT(1/COUNTIFS($A$1:$A1,$A$1:$A1))) 

! [введите описание изображения здесь


Если вы действительно хотите использовать vba, то измените эту строку:

 a.Interior.color = currentColor 'Interior.Color 

чтобы:

 Range(Cells(a.Row, 1), Cells(a.Row, 6)).Interior.Color = currentColor 'Interior.Color 

поэтому он будет применяться ко всей строке в желаемом диапазоне, а не только в столбце A.

  • VBA Для цикла IF Instr не находит подстроку
  • Получите среднее число групп для различных групп, которые различаются по размеру
  • Экземпляр Excel Combo условный Если инструкция для обнаружения пустого
  • Если оператор с несколькими текстовыми аргументами внутри диапазона
  • Считать список в пакетах
  • Формула Excel Countifs
  • Функции и уравнения Excel IF
  • отображение графика с функцией if в EXCEL
  • Если это значение найдено в диапазоне, то используйте значение рядом с результатом диапазона
  • Данные заполняются определенным шаблоном
  • Добавить итоговые значения строк, если ячейка окрашена?
  • Interesting Posts

    Функция поиска со списком текстовых значений не работает

    Суммирование нечетных данных опроса в сводной таблице

    Возвращаемая ячейка, содержащая все эти вещи

    Панель данных Excel, указывающая на значение ячейки

    Добавьте определенные строки из файла xlsx в список, используя pandas

    Добавить значения столбца в зависимости от другого столбца

    Извлечение внутреннего текста из диапазона с помощью vba

    php mysql export должен создать раскрывающийся список

    Вставить конкретный диапазон excel в обзорную встречу

    Почему excel продолжает просить меня сохранять при закрытии приложения?

    VBA: автоматическая очистка всей строки на основе значения ячейки

    Как создать новый лист в файле excel с помощью apache poi в selenium webdriver с java

    Как поместить разрывы строк каждые 30 записей

    Excel VLOOKUP с 2 значениями поиска

    Форматирование hhmmAM / PM (без пробела) в HH: MM AM / PM и оставить ячейки пустыми, если не было введено никакого времени

    Давайте будем гением компьютера.