【问题标题】:How to use VBA to remove 1 (most recent) conditional formatting rule, while leaving the rest intact如何使用 VBA 删除 1 个(最近的)条件格式规则,同时保持其余部分不变
【发布时间】:2017-03-23 06:26:00
【问题描述】:

我有一个 Excel 电子表格,其中包含一些我不想触碰的内置条件格式。

我有一个宏可以将色阶(Excel 将其称为“红 - 黄 - 绿”色阶)添加到选择中,我只是将其用作诊断。我希望能够快速删除 那个 规则,同时保持其他规则不变。宏记录器无法有效地完成此任务。

【问题讨论】:

  • 如何添加渐变?作为每个单元格中的单元格格式?
  • @SvenRojek 我可能没有用正确的词。我编辑了这个问题,现在应该有意义了。
  • 这些单元格是同时受这两个规则的影响,还是它们在您的工作表上是分开的?
  • @SvenRojek 他们同时受到这两个规则的影响。
  • 你能给出一些你的规则的标准吗?然后您可以搜索该特定规则。

标签: excel vba


【解决方案1】:

您必须先确定哪种格式。之后您可以删除 FormatConditions Item()

Sub Remove_Second_Format()

    With Selection
            .FormatConditions.Item(2).Delete
    End With

End Sub

更新:

如果您的条件类型不同,您可以检查类型并删除所有与该类型相同的规则。选择您的单元格并运行此宏以删除所有“xlExpression”类型

Sub Remove_Second_Format()

    conditions = Selection.FormatConditions.Count
    For i = 1 To conditions
        If Selection.FormatConditions(i).Type = xlExpression Then
            Selection.FormatConditions(i).Delete
        End If
    Next i
End Sub

有多种类型,例如:ColorScaleDataBarxlExpression - 您必须更具体地了解您真正使用的内容...介意提供一些代码吗?

【讨论】:

  • 这里是其中的一部分: With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 8109667 With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor .Color = 7039480
  • 在这种情况下,只需使用带有.FormatConditions.Item(1).Delete 的第一个解决方案,而不是.FormatConditions.Item(2).Delete。或者第二个并将xlExpression 更改为ColorScale
【解决方案2】:

在上面尝试过,但它很困惑,所以如果你从最后一个向后删除它就可以了。这会将它们全部删除:

For i = conditions To 1 Step -1  
 Selection.FormatConditions(i).Delete
Next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多