首页officeexcel正文

excel如何利用VBA批量设置图标集条件格式

强国说学习2023-04-20164excel如何利用VBA批量设置图标条件

在Excel 2007/2010中设置图标集条件格式时,通常是同时对区域中的全部单元格进行设置的。但有时也有例外,如下图中C2:C1000区域中的各单元格的值为同行A列与B列的差值,需要在C列中设置图标集:

要求如下图:

在这种情况下,由于C列单元格中的图标集仅仅与其他列中的单元格值有关,而与本列中的其他单元格无关,因而无法直接对C2:C1000区域同时设置图标集。如果手动对C列中的每个单元格逐一设置图标集,在数据量较大的情况下几乎无法实现。要实现这个目的,可以用下面的两种方法:

方法一:用VBA代码

1.按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码:

该文章内容来源于网络,由WPS之家(wps.qiangguoshuo.com)收集,希望能为广大朋友提供帮助。

Sub IconSet()Dim rCell As RangeApplication.ScreenUpdating = FalseRange("c2:c1000").FormatConditions.DeleteFor Each rCell In Range("c2:c1000") rCell.FormatConditions.AddIconSetCondition With rCell.FormatConditions(1) .IconSet = ActiveWorkbook.IconSets(xl3Symbols2) With .IconCriteria(2) .Type = xlConditionValueNumber .Value = 0 .Operator = 7 End With With .IconCriteria(3) .Type = xlConditionValueFormula .Value = "=OFFSET($A$1,ROW()-1,0)*0.2" .Operator = 5 End With End WithNextApplication.ScreenUpdating = TrueEnd Sub

2.关闭VBA编辑器,按Alt+F8,打开“宏”对话框,选择“IconSet”宏名执行代码。

上述代码对C2:C1000区域中各单元格逐一设置图标集,选择C列中的某个单元格,如C8,在“开始”选项卡的“样式”组中单击“条件格式→管理规则”,在弹出的对话框中单击“编辑规则”,可以看到上述代码所设置的图标集条件格式,如图。

由于在条件格式的图标集、色阶、数据条中无法使用相对引用,因而使用下面的公式:

=OFFSET($A$1,ROW()-1,0)*0.2

该公式在图标集条件格式中总可以引用同行A列单元格的值。

方法二:用辅助列

方法是在C列在左侧插入一个辅助列,然后在辅助列中设置图标集条件格式,设置后看上去类似直接在D列中设置的图标集。

1.在C列左侧插入辅助列,先前的C列变为D列。选择C2单元格,在其中输入公式:

=D2/A2

然后向下填充公式到C1000单元格。

2.选择C2:C1000区域,在“开始”选项卡的“样式”组中单击“条件格式→新建规则”,在弹出的对话框中,默认已选择了“基于各自值设置所有单元格格式”。在下方的区域中,选择“格式样式”为“图标集”,“图标样式”选择“三个符号(无圆圈)”,类型都选择为“数字”,分别设置为“0.2”和“0”。勾选“仅显示图标”,如下图。

3.单击“确定”。Excel会在C列中设置图标集,最后设置适当的列宽即可。

如想转载该文章请注明出处:强国说学习-qiangguoshuo.com
强国说学习

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:https://www.qiangguoshuo.com/excel/70113.html