2013-10-23 52 views
1

我有5列(AE)的电子表格下面的名称:如何在Microsoft Excel中对两个按钮进行排序时单击表格?

  1. “TEST YEAR”
  2. “形式”
  3. “问题”
  4. “标签”
  5. 第五具有没有标题标题,但它仍然有数据。

我在通过标签栏搜索的文字和一排蓝色的细胞填充,如果有匹配的电子表格中的单独的功能。由于我可能会在不同时间进行各种搜索,因此我希望有两个按钮 - 点击后 - 将对5列进行排序。

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

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

+0

看看[this](http://stackoverflow.com/a/14859682/1698517)是否开始进行宏排序和[this](http://www.extendoffice.com/documents/excel/) 878-excel-insert-macro-button.html)来添加一个触发宏的按钮。 – Jaycal

回答

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. 右键单击形状并分配宏。
+0

这不是真的有效。如果你想要除了白色以外的任何颜色的单元格到顶部,你将如何更改第二个宏的代码? –

+0

您将需要确保您的RBG编号是针对您之后的特定颜色。 –

+0

就是这样。我如何找出颜色的RBG? Excel并不那么容易。另外,如果有多个高光颜色?它将如何订购? –

相关问题