Excel:基于最小/最大列有条件地添加图标

Excel:基于最小/最大列有条件地添加图标,excel,excel-formula,Excel,Excel Formula,在excel中,如果输入大于/小于最大值/最小值,我尝试在输入单元格上放置一个图标。最小值/最大值在每行的列中定义,请参见示例 A B C 1 Input Min Max 2 10 0 20 3 -5 -2 3 <--- should have icon abc 1输入最小值最大值 2 10 0 20 3-5-23根据BigBen的建议,我已经用宏记录器绘制了解决方案,然后手动编辑了宏。

在excel中,如果输入大于/小于最大值/最小值,我尝试在输入单元格上放置一个图标。最小值/最大值在每行的列中定义,请参见示例

     A     B     C
1    Input Min   Max
2    10    0     20
3    -5    -2    3     <--- should have icon
abc
1输入最小值最大值
2    10    0     20

3-5-23根据BigBen的建议,我已经用宏记录器绘制了解决方案,然后手动编辑了宏。这不是一个平稳的过程,但不知怎么的对我有效

已知限制:必须逐行应用此限制。通过设置快速组合键,操作变得更简单,但不推荐用于大型笔记本电脑

欢迎对此脚本进行任何改进

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
子编码器输入验证()
'
'编码器\输入\验证宏
'根据最小/最大值向编码器中的输入添加输入验证
'
'键盘快捷键:Ctrl+Shift+V
'
Application.CutCopyMode=False
Application.CutCopyMode=False
Application.CutCopyMode=False
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
带Selection.FormatConditions(1)
.ReverseOrder=False
.showiconly=False
.IconSet=ActiveWorkbook.IconSet(xl3Symbols)
以
Selection.FormatConditions(1).IConcreteria(1).Icon=xlIconRedCrossSymbol
带Selection.FormatConditions(1)和iconcreteria(2)
.Type=xlConditionValueFormula
.Value=“=”!$$”和Selection.Row
.Operator=7
.Icon=xlIconNoCellIcon
以
带Selection.FormatConditions(1)和iconcreteria(3)
.Type=xlConditionValueFormula
.Value=“=”!$$”和Selection.Row
.Operator=5
.Icon=xlIconRedCrossSymbol
以
端接头

如果输入大于最大值或小于最小值,则将打印一个红十字。在“输入”单元格上应用以进行验证,这样,每当计算表中提示超出边界的输入时,就会通知用户。

您需要为每一行使用不同的规则,但您可以使用VBA自动创建它们。讨厌听到这种情况。你能举一个关于VBA的例子吗?我对VBA完全是个新手,而且我觉得我无法在网上找到关于这个特定问题的教程。这看起来像是一个常见的场景,我使用宏记录器并记录添加一个图标到一行。。。这将给您一个领先的起点。您可以使用循环,而不是使用
选择。行
。。。但是,是的,这与最终的代码非常接近。