VBA排序范围|如何在Excel VBA中对范围进行排序?

Excel VBA排序范围

在VBA中对范围进行排序 由range.sort方法完成,它是range方法的一个属性,用户可以使用它对范围进行排序,此函数的参数为​​Key1,Order1,Key2,Type,Order2,Key3,Order3,Header, OrderCustom,MatchCase,Orientation,SortMethod,DataOption1,DataOption2,DataOption3,此函数的所有参数都是可选的。

作为数据组织或数据结构的一部分,对数据进行分类和组织起来很重要。 VBA也有类似的功能,因此,有关VBA新手的常见问题是我们如何才能在VBA自动化中使用此排序选项,本文将详细指导您完成VBA的排序范围。

使用excel,我们都熟悉DATA选项卡下可用的sort选项。

VBA中的排序选项

要使用排序选项,首先我们需要确定数据范围是什么,并通过使用VBA中的RANGE对象来提及相同的数据范围,然后只有我们才能访问VBA中的“排序”选项。例如,假设我的数据范围是从A1到D10,那么我们可以提供以下数据范围。

代码:

 子Sort_Range_Example()范围(“ A1:D10”)结束子 

现在放一个点,然后选择“ SORT”方法。

代码:

 Sub Sort_Range_Example()Range(“ A1:D10”)。Sort End Sub 

下面是range的SORT方法的语法,尽管语法具有不同的参数,但在VBA编码中我们不需要所有参数,因此我们只需要几个元素。

[Key1]: 在我们要排序的数据范围内,我们需要指定需要排序的列。例如,在A1:D10的数据范围内,如果我们要基于B列对数据进行排序,则 [Key1] 范围(“ B1”).

[Order1]: 提到的列 [Key1] 参数应按什么顺序排序。我们可以在此处选择两个选项“ xlAscending”或“ xlDescending”。

标头: 提到的数据范围是否带有标题,如果是,则可以提供“ xlYes”,否则可以提供“ xlNo”。

VBA中排序范围的示例

让我们以excel VBA排序范围为例,以更好地理解这一点。

您可以在此处下载此VBA排序范围Excel模板– VBA排序范围Excel模板

例如,查看下面的数据结构。

我们拥有从A1到E17的数据,因此首先我们将根据“国家/地区”对数据进行排序。请按照以下步骤编写代码以对数据进行排序。

步骤1: 启动excel宏过程。

代码:

 Sub Sort_Range_Example()结束Sub 

第2步: 首先使用 范围 目的。

代码:

 Sub Sort_Range_Example()范围(“ A1:E17”)结束Sub 

第三步: 现在选择“种类Range对象的方法。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。Sort End Sub 

第4步: 由于我们是根据“国家/地区”对数据进行排序 关键1 参数列将为范围(“ B1”)。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。排序键1:= Range(“ B1”),结束Sub 

步骤5: 提及所需的列后,我们需要提及我们需要按什么顺序对数据进行排序,并且“ Order1”将是 “ xlAscending” 命令。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。排序键1:= Range(“ B1”),Order1:= xlAscending,结束Sub 

步骤6: 我们的数据包含标题,因此标题为 “ xlYes”。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。排序键1:= Range(“ B1”),Order1:= xlAscending,标头:= xlYes End Sub 

我们已经提到了对数据进行排序所需的所有元素。通过按F5功能和键执行代码,然后查看结果。

输出:

已根据国家/地区名称以A到Z的顺序对数据进行了排序。

现在假设我们需要根据“国家/地区”对数据进行排序,还需要对“销售总额从最高到最低”。在这种情况下,我们还需要使用Key2和Order2参数。

提及Key1和Order1之后,让我们选择Key2。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。排序键1:= Range(“ B1”),顺序1:= xlAscending,键2:=结束Sub 

由于我们是根据“销售总额”列,我们的Key2列名称将为Range(“ D1”)。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。排序Key1:= Range(“ B1”),Order1:= xlAscending,Key2:= Range(“ D1”),结束Sub 

一旦指定了Key2,就需要在Order2参数中确定升序还是降序的排序方式,因为我们要从最大到最小对销售值进行排序,因此我们可以选择“ xlDescending”顺序。

代码:

 Sub Sort_Range_Example()Range(“ A1:E17”)。对Key1:= Range(“ B1”),Order1:= xlAscending,Key2:= Range(“ D1”),Order2:= xlDescending,标头:= xlYes进行排序 

在那之后,将Header参数提到为“ xlYes”。现在运行代码,看看会发生什么。

输出:

以前,它仅根据“国家/地区”进行排序,但是这次它首先基于“国家/地区”进行排序,然后再根据“总销售额”从最高到最低进行排序。

这样,我们可以使用“种类VBA中的“”方法来组织数据。

关于Excel VBA排序范围的注意事项

  • 排序是VBA中可用的一种方法,要访问此方法,我们需要指定要排序的单元格范围。
  • 如果数据范围包含标头,那么我们需要选择标头选项为“ xlYes”,否则,我们可以选择“ xlNo”。