用于删除条件格式填充颜色的宏红色

时间:2014-08-26 17:46:12

标签: excel vba excel-vba

我有一份很棒的Excel报告,我正在努力让技术人员的生活更轻松。

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

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

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

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

3 个答案:

答案 0 :(得分: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

<强>结果:

enter image description here

重要提示:您可以在任何范围内指定条件格式,但它将应用于您在here中讨论的 ModifyAppliedToRange 中设置的内容。< / p>

答案 1 :(得分:0)

您可以使用此选项清除工作表上红色的任何单元格(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

至于回到红色你不能只运行你已经拥有的宏吗?

答案 2 :(得分:0)

试试这个:

Selection.FormatConditions.Delete