Как предполагает 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» для проверки, таким образом, пользователь получает уведомление всякий раз, когда в вычислительном листе запрашивается внешний ввод.