2016-08-18 53 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 

但是,我怎麼重新創建第二格式?

我將開始第二種格式的新問題。