Excel VBA:编辑新行的现有条件格式规则

Posted

技术标签:

【中文标题】Excel VBA:编辑新行的现有条件格式规则【英文标题】:Excel VBA: Editing existing conditional formatting rules for new rows 【发布时间】:2017-04-04 16:03:15 【问题描述】:

我有一个电子表格,其中某些条件格式应用于某些单元格范围(例如$B$4:$F$5)。我设置了一个宏来添加一个新行,复制当前最后一行中的格式 + 公式。问题是,每次我添加一个新行时,都会创建一个额外的条件格式规则,只影响新行。

如何使用 VBA 扩展我已经设置的条件 - 使规则影响 $B$4:$F$6

【问题讨论】:

当然可以。你试过什么?是/否和“请给我执行 XYZ 的代码”问题在此站点上表现不佳。你读过How to Ask吗? 你运行的是什么版本的excel?在 Excel 2010 中修复了来自复制的潜在数千个几乎相同的 CFR 的错误,并且(我相信)在 xl2007 的服务包中修复。而且如果不破坏原始文件并重新创建它,您就无法调整应用的范围。 @Jeeped “破坏原件并重新创建它” -> 因此可能......至少如果你只考虑结果而不是到达那里的手段;-) @Jeeped 使用 365。编辑:所以我猜是 2016 年 @Mat'sMug 道歉 - 我没有尝试过任何特殊的 vba 方式,因为我是全新的,所以这有点难以理解。尝试录制编辑范围但没有拾取任何东西 【参考方案1】:

填写并删除常量,而不是复制和粘贴特殊的值和格式。这应该明确地将 CFR 扩展到新行。

With Worksheets("sheet1")
    With .Range(.Cells(4, "B"), .Cells(.Rows.Count, "F").End(xlUp))
        .Offset(.Rows.Count - 1, 0).Resize(2, .Columns.Count).FillDown
        On Error Resume Next
        'Debug.Print .Offset(.Rows.Count, 0).Resize(1, .Columns.Count).Address(0, 0)
        .Offset(.Rows.Count, 0).Resize(1, .Columns.Count).SpecialCells(xlCellTypeConstants, 23).ClearContents
        On Error GoTo 0
    End With
End With

【讨论】:

以上是关于Excel VBA:编辑新行的现有条件格式规则的主要内容,如果未能解决你的问题,请参考以下文章

vba代码根据两列条件插入新行

应用规则后 Excel 条件格式公式更改

Excel VBA - 条件格式中的用户定义函数

Excel VBA条件格式未执行

如何通过VBA代码获取Excel 2012条件格式的色标制作的颜色

如何使用 vba 在 Excel 2007 中找到条件格式单元格的填充颜色值?