1

我有一个包含 5 列 (AE) 的电子表格,其名称如下:

  1. “测试年”
  2. “形式”
  3. “问题”
  4. “标签”
  5. 第五个没有标题标题,但仍然有数据。

我在电子表格中有一个单独的功能,可以在 TAGS 列中搜索文本并在匹配时填充蓝色行的单元格。由于我可能会在不同时间进行各种搜索,因此我希望有两个按钮——点击后——将对 5 列进行排序。

第一个按钮将只是一个默认排序,使其恢复正常;它按 TEST YEAR 对表进行排序,然后按 FORM,然后按 QUESTION。第二个按钮首先按单元格颜色(蓝色)对表格进行排序,然后按 TEST YEAR,然后按 FORM,然后按 QUESTION。

这样的排序宏会是什么样子,我将如何通过单击按钮来运行它们?

4

1 回答 1

0

您的第一类代码是:

Sub Sort_BackToNormal()

If Sheets(1).AutoFilterMode = False Then
    Sheets(1).Range("A1:E1").AutoFilter
End If

RowCount = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("A2:A" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("B2:B" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("C2:C" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

End Sub

第二类的代码是:

Sub Sort_Color()

If Sheets(1).AutoFilterMode = False Then
    Sheets(1).Range("A1:E1").AutoFilter
End If

RowCount = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add(Range("D1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(0, 112, 192)
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("A2:A" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("B2:B" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range("C2:C" & RowCount), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

ActiveWorkbook.Worksheets(1).AutoFilter.Sort.SortFields.Add(Range("D1"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(0, 112, 192)
End Sub

制作一个按钮:

  1. 插入形状
  2. 让它漂亮
  3. 右键单击形状并指定宏。
于 2013-10-24T00:25:08.530 回答