【问题标题】:Auto Sort overrides color sort自动排序覆盖颜色排序
【发布时间】:2018-09-27 14:56:15
【问题描述】:

我正在为 excel 创建一个数据库。 目标是让输入的数据按颜色自动排序,然后按字母顺序。

我正在使用以下 VBA 进行自动排序。

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error Resume Next
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Range("A1").Sort Key1:=Range("A2"), _
          Order1:=xlAscending, Header:=xlYes, _
          OrderCustom:=1, MatchCase:=False, _
          Orientation:=xlTopToBottom

    End If

End Sub

我已经为颜色排序设置了宏,如下所示:

 With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    ActiveWorkbook.Worksheets("Master").ListObjects("Table2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Master").ListObjects("Table2").Sort.SortFields.Add( _
        Range("Table2[Name]"), xlSortOnCellColor, xlDescending, , xlSortNormal). _
        SortOnValue.Color = RGB(255, 0, 0)
    With ActiveWorkbook.Worksheets("Master").ListObjects("Table2").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

问题是一旦我输入新数据,字母排序就会覆盖颜色排序。

谁能帮我把颜色排序覆盖字母顺序?

非常感谢任何帮助!

【问题讨论】:

    标签: excel sorting colors vba


    【解决方案1】:

    当您像这样直接设置Range.Sort 属性时,它会删除现有的SortFields

    可选步骤:循环并删除任何SortFields,其中.SortOn 不是SortOnCellColor,以删除任何非颜色排序

    要在最后添加排序,您只需添加一个新的SortField,就像您已经为颜色所做的那样,然后应用排序:

    Private Sub Worksheet_Change(ByVal Target As Range)
        On Error Resume Next
        If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
            'Add new SortField to end of existing Sorts
            Me.ListObjects("Table2").Sort.SortFields.Add Key:=Me.Range("A2"), _
                SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            'Apply new SortFields
            Me.ListObjects("Table2").Sort.Apply
        End If
    End Sub
    

    然后,检查并从其余代码中删除对 ActiveWorkbook 的所有引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2012-06-12
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多