【问题标题】:Macro for removing conditional formatting fill color Red用于删除条件格式填充颜色红色的宏
【发布时间】:2014-08-26 17:46:12
【问题描述】:

我有一个大型 Excel 报告,我正在努力让我的技术人员的生活更轻松。

我有一些单元格,如果一个数字不在另一个单元格的 10% 范围内,那么该单元格将以红色突出显示。我的问题是我不希望我的客户在我的报告中看到红色突出显示。我必须将我的 Excel 报告转换为 PDF。

是否有一个宏代码只会取出突出显示 RED 的条件格式? 我的报告中有其他条件格式,这就是为什么我不能使用删除所有条件格式的宏代码。

另外,是否有一个宏代码可以让它回到 RED?

对此的任何帮助表示赞赏。谢谢

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    答案是肯定的。首先,您需要确定您正在处理的范围。
    然后检查您的范围是否有格式,如果有则删除,否则应用(如切换)。
    下面的代码就是这样做的。更改我评论过的行并进行调整。 HTH。

    Sub ColorUnColor()
        Dim myformat As String
        Dim cfr As Range
    
        myformat = "=A1<(0.1*B1)" '~~> change to suit
    
        With Sheet2 '~~> change to suit
            Set cfr = .Range("D1:D10") '~~> change to suit
            If cfr.FormatConditions.Count = 0 Then
                .Range("A1").FormatConditions.Add xlExpression, , myformat
                With .Range("A1").FormatConditions(1)
                    .Interior.Color = RGB(255, 0, 0)
                    .ModifyAppliesToRange cfr
                End With
            Else
                cfr.FormatConditions.Delete
            End If
        End With
    End Sub
    

    结果:

    重要提示:您可以在任何 Range 中分配条件格式,但它将应用于您在 ModifyAppliedToRange 中设置的内容,我在 here 中讨论过。

    【讨论】:

      【解决方案2】:

      您可以使用它来清除工作表上任何红色 (255) 的单元格。不确定这是否正是您所需要的。

      Sub testes()
      
      Dim SrchRng As Range
      Set SrchRng = ActiveSheet.UsedRange
      
          For Each Source In SrchRng
              If Source.Interior.Color = 255 Then
                  Source.Interior.Color = xlNone
              End If
          Next Source
      
      End Sub
      

      至于变回红色就不能直接运行已有的宏吗?

      【讨论】:

        【解决方案3】:

        试试这个:

        Selection.FormatConditions.Delete
        

        【讨论】:

          猜你喜欢
          • 2014-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-08
          • 1970-01-01
          • 2019-07-09
          • 2014-10-27
          相关资源
          最近更新 更多