2016-03-02 52 views
0

我有一個工作表填充數據。我需要過濾只能顯示信息w/in 5 miles的數據。一旦數據過濾到w/in 5 miles,我需要按升序對差異列進行排序。我使用了一個記錄宏,並試圖將其納入。過濾工作正常,但我得到一個錯誤說:如何對vba中的過濾數據進行排序?

Compile Error: Expected Array

當我運行它。這是我的代碼片段。當錯誤彈出時,Range在第6行代碼中突出顯示。

.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 
+0

你有沒有考慮先進行排序,然後過濾? –

+0

我試過了,得到了同樣的錯誤....在同一個地方 – KSharp

回答

0

下面的代碼將幫助你......

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 
+0

我試過上面的代碼...它在第三行突出顯示「範圍」並給出了相同的錯誤信息。 – KSharp

相關問題