VBA的使用之自动排序
使用excel做表格的时候,有时候需要根据特定的行来排序,让结果更美观,更易查找到想要的数据,一目了然。
排序很简单,选择想要排序的行,然后点击自动排序,就可以了,但是如果是一个经常操作的表格,而且前面还带有序号的话,就有点麻烦了,序号就变得没有了顺序,如果还想用颜色来区分行的话,也是比较麻烦的事。
对于频繁重复的动作,还是交给VBA宏来处理吧。
下面是一段排序的VBA代码:
    
        
            - Sub paixu()  --程序开头
 
            - a = 4  -- 从第四行开始排序,前面三行为标题行
 
            - b = cells(.rows.count,1).end(xlup).row  --第一列非空的最后一行
 
            - Rows(a & ":" & b).Select  --选择排序范围:从第四行到最后一行
 
            - Sort.SortFields.Clear  --清楚之前的格式
 
            - Sort.SortFields.Add Key:=Range(Cells(a, 2), Cells(b, 2)),_  
 
            - SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal  --以第二列为排序第一条件
 
            - Sort.SortFields.Add Key:=Range(Cells(a, 3), Cells(b, 3)),_  
 
            - SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal  --以第三列为排序的第二条件
 
            - With Sort  --开始排序
 
            - .SetRange Range(Cells(a, 1), Cells(b, 16))
 
            - .Header = xlGuess
 
            - .MatchCase = False
 
            - .Orientation = xlTopToBottom
 
            - .SortMethod = xlPinYin
 
            - .Apply
 
            - End With
 
            -   --下面的代码为按照第二列中单元格的值填充不同的背景颜色
 
            -   --也可改成单数填充一种颜色,双数填充另一种颜色
 
            - For i = 4 To b
 
            -  Select Case Cells(i, 2).Value
 
            -  Case 1
 
            - Range(Cells(i, 2), Cells(i, 15)).Interior.ColorIndex = 10  --填充的颜色值,可任改
 
            -  Range(Cells(i, 2), Cells(i, 15)).Interior.TintAndShade = 0.3  --类似于颜色的浓淡或者说透明度
 
            -  Case 2
 
            - Range(Cells(i, 2), Cells(i, 15)).Interior.ColorIndex = 43
 
            - Range(Cells(i, 2), Cells(i, 15)).Interior.TintAndShade = 0.3
 
            - End Select
 
            - Cells(i, 1).Value = i - 3  --给第一列重新编上序列号
 
            - Next
 
            - End Sub
 
        
     
将代码放到VBA同表格名的界面下,下次直接在宏中点击运行paixu即可。