【问题标题】:Excel VBA: Editing existing conditional formatting rules for new rowsExcel VBA:编辑新行的现有条件格式规则
【发布时间】: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 方式,因为我是全新的,所以这有点难以理解。尝试录制编辑范围但没有拾取任何东西

标签: vba excel conditional-formatting


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2012-01-14
    相关资源
    最近更新 更多