八、VBA 排序 ,Range Sort
对数据透视表、单元格区域或活动区域(如果指定区域仅包含一个单元格)进行排序。
expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
expression 必需。该表达式返回“应用于”列表中的对象之一。如 Range("A2:B2000")
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
在 A2 到 B2000 的 范围内,对 B2到B2000,进行倒序
Sheets("Sheet3").Range("A2:B2000").Sort key1:=Range("B2:B2000"), Order1:=xlDescending
九、VBA 调用 excel 自带函数
WorksheetFunction.Sum(Range())