Как условно форматировать столбец в VBA на основе значения каждой ячейки и значения фиксированной ячейки?

Мне нужно настроить условное форматирование для столбца, где каждая ячейка подсвечивается на основе двух других значений, полученных из ячеек в электронной таблице. Значения – это даты. Это необходимо сделать в VBA (по многим причинам: код работает с другим программным обеспечением и очищает содержимое, группирует группы вместе и т. Д.). У меня не было много методов, и я в настоящее время терпит неудачу в следующем:

Sheets("Trial").Activate With ActiveSheet.Range("E:E") .Select .FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="=" & (Range("P1").Value - 1), Formula2:="=" & (Range("P1").Value + 6) .FormatConditions(1).Interior.Color = RGB(255, 0, 0) End With 

В конечном счете, мне нужны ячейки в столбце E, чтобы они загорались, когда значение находится между P1-1 и P1 + 6. Даже если я извлечу этот код и запускаю его сам по себе, я получаю ошибку вызова процедуры. Мысли?

Пожалуйста попробуйте:

 Sheets("Trial").Activate With Columns("E:E") .FormatConditions.Add Type:=xlExpression, Formula1:="=AND(E1>=$P$1-1,E1<=$P$1+6)" .FormatConditions(1).Interior.Color = 255 End With 

Вам даже не нужно использовать условное форматирование, если вы этого не хотите. Вы можете использовать цикл for для циклического прохождения всех значений в столбце E. Возьмите это в качестве примера.

 Dim TotalERows As Long Dim EValue As Long Dim LowerBound As Long Dim UpperBound As Long LowerBound = Worksheets("Sheet1").Range("P1").Value - 2 UpperBound = Worksheets("Sheet1").Range("P1").Value + 7 TotalERows = Worksheets("Sheet1").Range("E" & Rows.Count).End(xlUp).Row For I = 1 To TotalERows EValue = Range("E" & I).Value If LowerBound < EValue And EValue < UpperBound Then Range("E" & I).Interior.ColorIndex = 3 End If Next I 
  • Можно ли форматировать дату в MSQuery, прежде чем вернуть данные в Excel?
  • Selenium Webdriver: поле Date заполняется переданной строкой, но позже изменяется на другую дату, как только фокус изменяется
  • Формула Excel получит название сезона?
  • Серийные номера даты Excel / SQLite
  • Excel SUMIF с использованием диапазонов текста и дат, определенных значением ячейки
  • MS Excel: как получить измененный формат даты при экспорте в формате csv?
  • Excel VBA не будет корректно форматировать дату после фрагмента
  • Таблица сводных таблиц Excel «Групповое поле» отключена
  • Имя Dataframe R
  • Проверка формата входных данных
  • Excel не может найти даты (независимо от параметров форматирования)
  • Давайте будем гением компьютера.