Excel VBA自动过滤

时间:2015-08-21 20:37:48

标签: excel vba excel-vba

我无法使用VBA进行自动过滤。我的代码工作一次,之后我得到一个运行时错误代码91.这是我的代码。我知道这很简单,但我错过了什么?提前谢谢。

Dim MyWorksheet As Worksheet
Set MyWorksheet = Sheets("entity details - cost summary")
Sheets("entity details - cost summary").Select
Range("H6").Select
MyWorksheet.AutoFilter.sort.SortFields.Clear
MyWorksheet.AutoFilter.sort. _
    SortFields.Add Key:=Range("H6"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortTextAsNumbers
With MyWorksheet.AutoFilter. _
    sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

更新: 错误发生在第5行

MyWorksheet.AutoFilter.sort.SortFields.Clear

第5行是列标题,从B列到P列。每行代表不同的制造设备,每列代表不同的属性或成本。 H列有可能的条目。所以我试图使用自动过滤器对每个条目进行分组。

1 个答案:

答案 0 :(得分:1)

以下内容适用于B列中的数据范围:P从第5行的标题行开始,继续到B列的最后一个值。

Sub equip_sort()
    With Worksheets("entity details - cost summary")
        With .Range(.Cells(5, 2), .Cells(Rows.Count, 2).End(xlUp))
            With .Resize(.Rows.Count, 15)
                .Cells.Sort Key1:=.Columns(7), Order1:=xlAscending, _
                            Orientation:=xlTopToBottom, Header:=xlYes
                .Columns(7).AutoFilter field:=1
            End With
        End With
    End With
End Sub

对数据进行排序并选择过滤列(H列)。没有应用过滤器,因为没有指定该区域,也没有提供样本数据或预期结果。