Excel VBA教程:Sort方法

对数据透视表、单元格区域或活动区域(如果指定区域仅包含一个单元格)进行排序。

expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

expression   必需。该表达式返回“应用于”列表中的对象之一。

Key1   Variant 类型,可选。第一个排序字段,可为文本(数据透视表字段或区域名)或者为 Range对象 (例如,“Dept”或Cells(1, 1))。

Order1  XlSortOrder 类型,可选。在 Key1 中指定的字段或区域的排序顺序。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescending 对 Key1 按降序排序。
xlAscending 默认值。对 Key1 按升序排序。

Key2   Variant 类型,可选。第二个排序字段,可为文本(数据透视表字段或区域名)或者为 Range对象。如果省略本参数,则没有第二个排序字段。对数据透视表进行排序时,不能使用本参数。

Type  Variant 类型,可选。指定要排序的元素。仅在对数据透视表排序时才使用本参数。

XlSortType 可为以下 XlSortType 常量之一。
xlSortLabels 按标签对数据透视表排序。
xlSortValues 按值对数据透视表排序。

Order2  XlSortOrder 类型,可选。在 Key2 中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescending 对 Key2 按降序排序。
xlAscending 默认值。对 Key2 按升序排序。

Key3   Variant 类型,可选。第三个排序字段,为文本(区域名)或者为 Range对象。如果省略本参数,则没有第三个排序字段。对数据透视表进行排序时,不能使用本参数。

Order3  XlSortOrder 类型,可选。在 Key3 中指定的字段或区域的排序顺序。对数据透视表进行排序时,不能使用本参数。

XlSortOrder 可为以下 XlSortOrder 常量之一。
xlDescending 对 Key3 按降序排序。
xlAscending 默认值。对 Key3 按升序排序。

Header  XlYesNoGuess 类型,可选。指定第一行是否包含标题。对数据透视表进行排序时,不能使用本参数。

XlYesNoGuess 可为以下 XlYesNoGuess 常量之一。
xlGuess 由 Microsoft Excel 确定是否有标题,如果有,确定标题位于何处。
xlContinuous 默认值。(应对整个区域进行排序)。
xlYes (不应对整个区域进行排序)。

OrderCustom   Variant 类型,可选。本参数是从 1 开始的整数,指定了在自定义排序顺序列表中的索引号。如果省略 OrderCustom参数,则使用常规排序。

MatchCase   Variant 类型,可选。如果为 True,则进行区分大小写的排序;如果为 False,则排序时不区分大小写。对数据透视表进行排序时,不能使用本参数。

Orientation  XlSortOrientation 类型,可选。排序方向。

XlSortOrientation 可为以下 XlSortOrientation 常量之一。
xlSortRows 默认值。按行排序。
xlSortColumns 按列排序。

SortMethod  XlSortMethod 类型,可选。排序类型。对于所选择或安装的不同语言支持(例如:美国英语),以上某些常量可能不可用。

XlSortMethod 可为以下 XlSortMethod 常量之一。
xlStroke 按每个字符的笔划数量排序。
xlPinYin 默认值。按字符的汉语拼音顺序排序。

DataOption1  XlSortDataOption 类型,可选。指定如何对 key 1 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

DataOption2  XlSortDataOption 类型,可选。指定如何对 key 2 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

DataOption3  XlSortDataOption 类型,可选。指定如何对 key 3 中的文本进行排序。对数据透视表进行排序时,不能使用本参数。

XlSortDataOption 可为以下 XlSortDataOption 常量之一。
xlSortTextAsNumbers 将文本作为数字型数据排序。
xlSortNormal 默认值。分别对数字和文本数据进行排序。

说明

对于特定的工作表,每次使用本方法时,将保存对 Header、Order1、Order2、Order3、OrderCustom 和 Orientation 的设置。如果在下次调用本方法时不指定这些参数的值,则会使用这些保存的值。如果不使用这些保存的值,在每次使用 Sort方法时请明确设置这些参数的值。

不能转换为数字型数据的文本字符串按常规排序。

注意   如果使用 Sort方法时没有定义参数,则 Microsoft Excel 会对所选定的要排序的区域按升序排序。

Excel VBA教程:Sort方法·示例

本示例对工作表 Sheet1 上的单元格区域 A1:C20 进行排序,用单元格 A1 作为第一排序关键字,用单元格 B1 作为第二排序关键字。排序是按行以升序进行的,没有标题。本示例假定单元格区域 A1:C20 有数据存在。


Sub SortRange1()
    Worksheets("Sheet1").Range("A1:C20").Sort _
        Key1:=Worksheets("Sheet1").Range("A1"), _
        Key2:=Worksheets("Sheet1").Range("B1")
End Sub

本示例对工作表 Sheet1 上包含单元格 A1 的区域(活动区域)进行排序,按第一列中的数据进行排序,并且自动使用标题行(如果存在)。本示例假定活动区域(包含单元格 A1)中有数据存在。Sort方法将自动确定活动区域。


Sub SortRange2()
    Worksheets("Sheet1").Range("A1").Sort _
        Key1:=Worksheets("Sheet1").Columns("A"), _
        Header:=xlGuess
End Sub

上页:Excel VBA教程:Solid方法 下页:Excel VBA教程:SortSpecial方法

Excel VBA教程:Sort方法

Excel VBA教程:SortSpecial方法 Excel VBA教程:Speak方法
Excel VBA教程:SpecialCells方法 Excel VBA教程:获取有关 Macintosh 关键字的“帮助”
Excel VBA教程:Subtotal方法 Excel VBA教程:SwapNode方法
Excel VBA教程:Table方法 Excel VBA教程:Text方法
Excel VBA教程:TextToColumns方法 Excel VBA教程:ToggleVerticalText方法
Excel VBA教程:TransferChildren方法 Excel VBA教程:Trendlines方法
Excel VBA教程:TwoColorGradient方法 Excel VBA教程:Undo方法
Excel VBA教程:Ungroup方法 Excel VBA教程:Union方法
Excel VBA教程:UnMerge方法 Excel VBA教程:Unprotect方法
Excel VBA教程:UnprotectSharing方法 Excel VBA教程:Update方法
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号