Excel: условно добавить значок на основе столбца мин / макс - PullRequest
0 голосов
/ 23 апреля 2020

В Excel я пытаюсь поместить значок в ячейку ввода, если ввод больше / меньше, чем макс / мин. Мин. / Макс. Значения определены в столбце для каждой строки, см. Пример.

     A     B     C
1    Input Min   Max
2    10    0     20
3    -5    -2    3     <--- should have icon

Я не могу найти учебник о том, как использовать GUI для условного форматирования по этому вопросу. Можно ли это сделать вообще?

edit : чтобы уточнить, я пытаюсь использовать этот GUI интерфейс:

enter image description here

Редактировать : для лучшего понимания вопрос заключается в том, как автоматически применить это к любому числу строк (с наименьшим количеством необходимого взаимодействия с человеком).

1 Ответ

1 голос
/ 23 апреля 2020

Как предполагает BigBen, я набросал решение с помощью Macro Recorder, затем отредактировал макрос вручную. Это не гладкий процесс, но как-то работает для меня.

Известное ограничение: вы должны применять этот ряд за строкой. Настройка быстрой комбинации клавиш облегчает работу, но не рекомендуется для огромного ноутбука.

Любые улучшения в этом сценарии приветствуются!

Sub Encoder_input_validation()
'
' Encoder_input_validation Macro
' Adds input validation to inputs in Encoders based on Min/Max
'
' Keyboard Shortcut: Ctrl+Shift+V
'
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Selection.FormatConditions.AddIconSetCondition
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1)
        .ReverseOrder = False
        .ShowIconOnly = False
        .IconSet = ActiveWorkbook.IconSets(xl3Symbols)
    End With
    Selection.FormatConditions(1).IconCriteria(1).Icon = xlIconRedCrossSymbol
    With Selection.FormatConditions(1).IconCriteria(2)
        .Type = xlConditionValueFormula
        .Value = "='<your worksheet name>'!$<"Min" column Letter>$" & Selection.Row
        .Operator = 7
        .Icon = xlIconNoCellIcon
    End With
    With Selection.FormatConditions(1).IconCriteria(3)
        .Type = xlConditionValueFormula
        .Value = "='<your worksheet name>'!$<"Max" column Letter>$" & Selection.Row
        .Operator = 5
        .Icon = xlIconRedCrossSymbol
    End With
End Sub

Напечатает красный крестик, если вход больше максимума или меньше мин. Примените к ячейке «input» для проверки, таким образом, пользователь получает уведомление всякий раз, когда в вычислительном листе запрашивается внешний ввод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...