Изменить формат строки ячеек на основе сравнения каждой ячейки в 2 ряда - PullRequest
0 голосов
/ 20 марта 2019

В Excel 2016 я использую запрос для сбора данных.В этих данных указаны как текущий запас, так и сумма, необходимая на следующие 2 дня производства.Я хочу выделить, когда инвентарь меньше необходимой суммы.Когда я использую условное форматирование, оно сначала выглядит хорошо, но затем, когда я обновляю больше данных, диапазон условного формата нарушается.Что было бы хорошим способом сделать это с помощью VBA?

пример данных

вот формула условного формата

Условное изменение формата

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Greg_D Я только что нашел решение и увидел, что вы только что опубликовали решение.Я попробовал ваш, и это сработало.Я пошел по другому пути.

Sub Inventory_format()Dim cell As Range

Для каждой ячейки в диапазоне («SeqInv»)

«Сравнение инвентаризации с qtyneeded» * 90% меньше, чем требуется для предупреждениявыделение красным цветом 'с использованием именованного диапазона low_limit, поэтому его можно изменить на рабочем листе установок gen

If cell.Value * (1 - Range ("Low_limit"))

cell.Interior.Color = VBA.ColorConstants.vbRed

'инвентарь * 70% меньше, чем требуется для предупреждения желтым цветом

ElseIf cell.Value * (1 - Range ("High_limit"))

End Sub

0 голосов
/ 20 марта 2019

Без подробностей сложно понять, что такое "скомпрометированный". Я предполагаю, что диапазон условного форматирования либо не включает новые записи, либо изменяется дополнительными записями. Устранит ли проблему изменение диапазона условного форматирования для включения целых строк? например изменить $A$1:$B$5 на $A:$B

EDIT: ХОРОШО. Попробуйте VBA, который очищает и сбрасывает условное форматирование каждый раз.

Sub Format()
  With ActiveSheet.Rows("$2:$2") ''Select rows your working with
    .FormatConditions.Delete  '' Clear out exising Conditional Formatting in selection
    .FormatConditions.Add Type:=xlExpression, Formula1:="=(A$1>A$2)"  ''Formula where condition is true
    .FormatConditions(.FormatConditions.Count).Interior.Color = 65535 ''Set formatting you color yellow
  End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...