【发布时间】:2015-08-22 12:30:29
【问题描述】:
我很难使用 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 列有可能的条目。所以我尝试使用自动过滤器对每个条目进行分组。
【问题讨论】:
-
哪一行报错?
-
使用AutoFilter Method 的最简单方法是定义一个范围并在With ... End With statement 中使用它。 Range.CurrentRegion property 对此有好处。但是,很难在不查看数据的情况下写入该方法,因为您从第 6 行开始并且没有提供 H6 周围的指示。