【问题标题】:How to sort filtered data in vba?如何在vba中对过滤后的数据进行排序?
【发布时间】:2016-06-15 17:09:23
【问题描述】:

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

编译错误:预期的数组

当我运行它时。这是我的代码的 sn-p。当错误弹出时,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

【问题讨论】:

  • 你考虑过先排序再过滤吗?
  • 我试过了,得到了同样的错误......在同一个地方

标签: excel vba sorting filtering


【解决方案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

【讨论】:

  • 我尝试了上面的代码......它在第三行突出显示了“Range”并给出了相同的错误消息。
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 2021-08-20
  • 2012-01-23
  • 2018-09-13
  • 1970-01-01
相关资源
最近更新 更多