对过滤范围进行排序

时间:2014-01-07 22:22:32

标签: sorting excel-vba vba excel

我需要过滤已经过滤的范围。我正在使用下面的代码,但我认为自动过滤器是不必要的。但是,如果你删除自动过滤器,我仍然会得到一个 “运行时'438':对象不支持此属性或方法”错误。

这是我的代码:

Range(cells(1,1),cells(9,5).select
selection.autofilter
activesheet.selection.autofilter.sort.sortfields.clear
activesheet.selection.autofilter.sort.sortfields. _
    add key:=range("a8"), sorton:=xlsortonvalues, order:=xldescending, _
    dataoption:=xlsortnormal

with activesheet.autofilter.sort
    .header=xlYes
    .matchcase=false
    .orienation=xltoptobottom
    .sortmethod=xlPinYin
    .apply
end with

1 个答案:

答案 0 :(得分:0)

对不起,迟到的家伙们。另外,我应该更清楚地了解我想要的代码。我真的只想复制一系列有序的细胞。我能够使用我录制的宏中的代码。以下是最终工作的代码:

Range(cells(FR,1),cells(LastRow,5)).select
activeworkbook.worksheets("TR_Tracking").sort.sortfields.clear
activeworkbook.worksheets("TR_Tracking").sort.sortfields.add key:=range( _
    cells(FR,1),cells(lastrow,1)),sorton:=xlsortonvalues,order:=xlascending, dataoption:= _ 
    xlsortnormal
with activeworkbook.worksheets("TR_Tracking").sort
    .setrange range(cells((FR-1),1),cells(LastRow,5))
    .header=xlYes
    .matchcase= false
    .orientation =xltoptobottom
    .sortmethod=xlpinyin
    .apply
end with

FR = First Row和LastRow =我在单独的代码行中指定的范围中的最后一行。