2016-08-18 34 views
0

如何使用VBA打开和关闭条件格式化?使用VBA打开和关闭条件格式化

我有一个范围C3:AD46。我有两个条件格式。

enter image description here enter image description here

我想切换第一格式/关闭使用宏。第二种格式可以始终保持启用状态。

谢谢。

+1

您可以使用'.FormatConditions.Delete'去除条件,如果你想再次启用它,你可以使用'.FormatConditions.Add'方法给定范围。 [参考](http://www.ozgrid.com/forum/showthread.php?t=138066) – newguy

+1

切换一个条件格式开/关,使用'= AND(一些公式,toggleboolean)',因此你可以控制通过调整'toggleboolean'来打开/关闭 – Rosetta

+0

我给出的第一个例子不使用公式。 – posfan12

回答

0

对于第一种格式,我能够拼凑出以下几点:

Private Sub CheckBox1_Click() 
    Dim rngMyRange As Range 

    Set rngMyRange = ActiveWorkbook.Worksheets("tim-vgr_hgn").Range("C3:AO46") 'Set your range here 

    If rngMyRange.FormatConditions.Count = 0 Then 'Set Conditional Formats 
     With rngMyRange 
      .FormatConditions.AddColorScale ColorScaleType:=3 

      ' Format the first color as green 
      .FormatConditions(1).ColorScaleCriteria(1).Type = xlConditionValueNumber 
      .FormatConditions(1).ColorScaleCriteria(1).Value = 0 
      .FormatConditions(1).ColorScaleCriteria(1).FormatColor.Color = RGB(0, 255, 0) 

      ' Format the second color as yellow 
      .FormatConditions(1).ColorScaleCriteria(2).Type = xlConditionValueNumber 
      .FormatConditions(1).ColorScaleCriteria(2).Value = 120 
      .FormatConditions(1).ColorScaleCriteria(2).FormatColor.Color = RGB(255, 255, 0) 

      ' Format the third color as red 
      .FormatConditions(1).ColorScaleCriteria(3).Type = xlConditionValueNumber 
      .FormatConditions(1).ColorScaleCriteria(3).Value = 7200 
      .FormatConditions(1).ColorScaleCriteria(3).FormatColor.Color = RGB(255, 0, 0) 

     End With 

    Else 'Clear Conditional Formats 

     rngMyRange.FormatConditions.Delete 

    End If 
End Sub 

但是,我怎么重新创建第二格式?

我将开始第二种格式的新问题。