如何在vba中对过滤后的数据进行排序?

时间:2016-03-02 17:28:32

标签: excel vba sorting filtering

我有一个填充了数据的工作表。我需要过滤只显示信息w/in 5 miles的数据。将数据过滤到w/in 5 miles后,我需要按升序对方差列进行排序。我使用了一个记录宏并尝试将其合并。过滤工作正常但我得到一个错误说:

  

编译错误:预期数组

我跑的时候。这是我的代码片段。弹出错误时,{6}代码突出显示Range

.Worksheets("Market Work").Cells.Select
Selection.AutoFilter
.Worksheets("Market Work").Range("$A$1:$Q$" & RowLast2).AutoFilter Field:=5, Criteria1:= _
    "w/in 5 miles"


ActiveWorkbook.Worksheets("Market Work").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Market Work").Sort.SortFields.Add Key:=Range( _
    "G2:G112"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With ActiveWorkbook.Worksheets("Market Work").Sort
    .SetRange Range("A1:Q112")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

1 个答案:

答案 0 :(得分:1)

以下代码可以帮助您......

Sheets("Finnet").Select
Sheets("Finnet").AutoFilterMode = False
Sheets("Finnet").Range("A1", Range("XFD1").End(xlToLeft)).Select
Sheets("Finnet").Range(Selection, Range("A" & Rows.Count).End(xlUp)).AutoFilter
Sheets("Finnet").AutoFilter.Sort.SortFields.Add Key:=Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending
Sheets("Finnet").AutoFilter.Sort.Header = xlYes
Sheets("Finnet").AutoFilter.Sort.Apply
Sheets("Finnet").AutoFilterMode = False