使用代码

时间:2017-03-22 15:39:30

标签: excel vba excel-vba conditional-formatting

(Excel 2016)我有几个带有现有条件格式的大型电子表格。在任何特定的工作表上,我有几个表,每个表都有自己的一组条件格式。表格的大小发生变化,因此范围会有所不同。并且有很多(100)。相同的规则适用于每一组,也就是说,我想编辑的条件格式是一致的,具有适用于每个范围/表的4种格式的相同“集”(例如红/黄/绿/蓝)。

我正在尝试弄清楚如何编辑现有格式中的颜色值。例如,将当前为绿色的文本颜色更改为浅绿色。现在我必须手动编辑数百个公式条目。

我已经看到很多关于通过VBA应用条件格式的例子,但是我没有看到如何逐步完成这些表并编辑现有格式,而不改变它们的顺序或优先级。

1 个答案:

答案 0 :(得分:1)

如果您只想修改填充颜色,请循环浏览工作表上的所有.FormatConditions并使用Select ... Case修改颜色序号。

Option Explicit

Sub wqwqty()
    Dim cfr As Long
    With Worksheets("Sheet1").Cells
        For cfr = 1 To .FormatConditions.Count
            With .FormatConditions(cfr).Interior
                Debug.Print .Color
                Select Case .Color
                    Case 255                'dark red
                        .Color = 192        'light red
                    Case 192                'dark red
                        .Color = 255        'light red
                    Case 5287936            'dark green
                        .Color = 5296274    'light green
                    Case 12611584           'dark blue
                        .Color = 15773696   'light blue
                    Case 49407              'orange
                        .Color = 65535      'yellow
                End Select
                Debug.Print .Color
            End With
        Next cfr
    End With
End Sub