首页 > 解决方案 > 为什么 VBA .AutoFilter 方法在排序时会删除标题行,我该如何避免这种情况?

问题描述

我正在尝试使用 K 列中的值按从小到大对费用报告进行排序。

代码 1) 无法按从小到大对代码进行排序,并且 2) 删除了第 1 行(标题行)。

ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
  SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
  SortFields.Add2 Key:=Range("K1"), SortOn:=xlSortOnValues, Order:= _
  xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").AutoFilter. _
  Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

该代码不显示任何错误消息。

标签: excelvbafilter

解决方案


尝试这个:

        Sub sIndex()
ActiveWorkbook.Worksheets("Sheet 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet 1").Sort.SortFields.Add Key:=Range( _
    "K1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With ActiveWorkbook.Worksheets("Sheet 1").Sort
    .SetRange Range("A2:AA10000")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
End Sub

推荐阅读