条件格式代码不会清除或重置

时间:2016-11-22 11:44:55

标签: excel vba formatting conditional-formatting

我正在使用VBA将数据行从一个工作表移动到另一个工作表,具体取决于某些单元格的值。此代码工作正常,但当行移动时,条件格式重置为每个特定行而不是应用于整个列(D15:D1000),因此色标和基于色标的过滤器都可以工作。

我尝试使用formatconditions.delete清除不正确的格式,然后使用我使用记录宏获取的代码将其替换为正确的格式。其中一张表的代码如下:

'Priority Filter - Burn'
     With Worksheets("Burn")
     Range("D15:D1000").Select
    Selection.FormatConditions.Delete
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
    xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
    .Color = 7039480
    .TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
    xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
    .Color = 8711167
    .TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
    xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
    .Color = 8109667
    .TintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlTextString, String:="VIP", _
    TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
    .Bold = True
    .Italic = False
    .Color = -16711681
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

End With

    ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Add _
    Key:=Range("D14"), SortOn:=xlSortOnValues, Order:=xlAscending, _
    DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort.SortFields.Add( _
    Range("D14"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue. _
    Color = RGB(0, 0, 0)
    With ActiveWorkbook.Worksheets("Burn").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

任何帮助将不胜感激!

0 个答案:

没有答案