2016-04-25 93 views
0

的范围该用于分拣的范围基于E栏数据的代码值排序数据

Sub SortByLevel() 

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E13:E528" _ 
    ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 

    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .SetRange Range("A12:L528") 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 

End Sub 

注意B12:L12是接头连接器的范围内。我的印象是,这可能比这更简单。任何建议将不胜感激。 谢谢,迈克尔

回答

2

使用本:

Range("A12:L528").Sort Key1:=Range("E13"), Order1:=xlAscending, Header:=xlYes 
+0

谢谢你,它工作正常!如果我可以问,当我有一个自定义列表时,例如 'CustomOrder:=“Low,Normal,High”',基于此我想对相同范围的数据进行排序,我应该在哪里将它嵌入您发布的代码中?因为我得到一个错误 – GunnRos86

+0

必须添加自定义列表到排序选项像这样,第1行:ActiveSheet.Sort.SortFields.Add Key:= Range(“E13”),CustomOrder:=“Low,Normal,High”line 2 : Range(“A12:L528”)。Sort Key1:= Range(“E13”),Order1:= xlAscending,Header:= xlYes –