需要 VBA 代码和语法来自动跨多列进行条件格式设置

问题描述 投票:0回答:1

我的目标是在范围为 D2:D13、E2:E13..... 到 V2:V13 的每个列中找到唯一最小值,但 M 列除外。(这是 19 列,跳过第 10 列)。 范围 D2:V13 中的每个单元格都是浅蓝色格式的,我想突出显示每列的唯一最小值......如果有一个唯一最小值。 每个具有唯一最小值的单元格将为白色,该列中的所有其他单元格将保持浅蓝色。 非常感谢所有帮助。

电子表格示例注意,我仅向 D、E 和 F 列添加了条件格式

我已成功将此代码用于单个列,但希望在所有 13 列中实现自动化。我有 6 个不同的表,每个表中的行数从 50 到 100 行不等。 我相信 Range...Select 和 FormatConditions.Add 语句必须为每列更改列引用,并且后面的所有内容都是通用的。以下仅是 D 列的代码。

Range("D2:D13").Select   
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _   
    "=AND($D2=MIN($D$2:$D$13),COUNTIF($D$2:$D$13),$D2)=1)"   
' Below is the same for all columns   
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority   
With Selection.FormatConditions(1).Font   
    .Bold=True   
    .Italic=False   
    .TintAndShade=0   
End With   
With Selection.FormatConditions(1).Interior   
    .PatternColarIndex=xlAutomatic   
    .Color=vbWhite   
    .TintAndShade=0   
End With   
Selection.FormatConditions(1).StopIfTrue=False   
vba excel-formula excel-2010 conditional-formatting
1个回答
0
投票

--蓝色细胞

=IF(AND(COUNTIF(A$1:A$5;MIN(A$1:A$5))=1;A1=MIN(A$1:A$5));FALSE;TRUE)

--白细胞

=IF(AND(COUNTIF(A$1:A$5;MIN(A$1:A$5))=1;A1=MIN(A$1:A$5));TRUE;FALSE)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.