Table of contents
实施 VBA宏 是在Excel中运行任何操作的最有效、最快速、最安全的方法。 在这篇文章中,我们将告诉你如何在 对该表进行排序 在Excel中用 VBA .
下载工作手册
你可以从这里下载免费的练习Excel工作簿。
用VBA对表进行排序.xlsm
在Excel中实施VBA对表格进行排序之前需要知道的事情
有一些参数是你在使用时必须经常使用的。 分类 的方法 VBA 所以在这里我们将讨论一些参数,使你在写代码时熟悉。
参数 | 必备/可选 | 数据类型 | 描述 |
---|---|---|---|
钥匙 | 可选 | 变体 | 指定要进行排序的范围或列的值。 |
秩序 | 可选 | XlSortOrder | 指定将进行排序的顺序。
|
标题 | 可选 | 是的,我不知道 | 指定第一行是否包含页眉。
|
在Excel中实施VBA对表格进行排序的4种方法
本节将告诉你如何 对Excel表格进行排序 通过考虑 价值、颜色、图标 和 多列 与 VBA 代码。
1.在Excel中嵌入VBA以按值排序表
考虑到下面的例子,我们将 根据数值对该表进行排序 存在于 马克 列中按降序排列。
步骤。
- 新闻 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .
- 在弹出的代码窗口中,从菜单栏中,点击 插入-> 模块 .
- 复制以下代码并将其粘贴到代码窗口。
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
你的代码现在可以运行了。
在这里。
- 排序TBL → 指定了表的名称。
- 排序TBL[标记] -> 指定了要排序的表的列名。
- Key1:=iColumn → 指定列的范围,让代码知道要对表中的哪一列进行排序。
- Order1:=xlDescending → 指明顺序为 xlDescending 如果你想对该列进行升序排序,那么请编写 xlAscending 而不是。
- 标题:= xlYes → 由于这个表格中的列有一个标题,所以我们用 xlYes 选择。
- 新闻 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。
你会看到,你的表格中的列现在是 按降序排序 .
阅读更多:如何在Excel中按数值排序(5种简单方法)
2.插入VBA宏,对表进行多列排序
你也可以 对多列的表格进行排序 在Excel中用 VBA 宏观。
从上表中,我们将对各列进行排序 命名 和 部门 按升序排列。
步骤。
- 与之前的方法一样,打开 Visual Basic编辑器 从 开发商 选项卡和 插入 a 模块 在代码窗口中。
- 在代码窗口,复制以下代码并粘贴。
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]" With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
你的代码现在可以运行了。
在这里。
- 表值 → 指定了表的名称。
- 表值[名称] -> 指定了要排序的表格的第一列名称。
- 表值[部门] -> 指定了要排序的表格的第二列名称。
- Key1:=iColumn1 → 指定列的范围,让代码知道需要对表中的第一列进行排序。
- 键1:=iColumn2 → 指定列的范围,让代码知道表中的第二列需要被排序。
- Order1:=xlAscending → 指明顺序为 xlAscending 如果你想以降序排序,那么就写成 "降序"。 xlDescending 而不是。
- 标题:= xlYes → 由于该表的列有标题,所以我们用 xlYes 选择。
- 运行 这个代码,你将得到两个 表的列排序 按升序排列。
阅读更多。 如何在Excel中自动排序多列(3种方法)
类似读物
- 如何在Excel中对独特的列表进行排序(10种实用方法)
- 用Excel VBA对数组进行排序(包括升序和降序)
- 如何在Excel中对数据进行排序和过滤(完整指南)
- 数据变化时Excel自动排序(9个例子)
- Excel中的随机排序(公式+VBA)
3.在Excel中实施按单元格颜色排序的宏程序
你也可以 根据单元格颜色对表格进行排序 它所包含的。
以上述表格为例,我们将向你展示如何根据这个表格所拥有的颜色进行排序。
步骤。
- 如前所述,开放 Visual Basic编辑器 从 开发商 选项卡和 插入 a 模块 在代码窗口中。
- 在代码窗口,复制以下代码并粘贴。
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor) .SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,.SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180,198,231) .Header = xlYes.Apply End With End Sub
你的代码现在可以运行了。
这里的 RGB 我们提供的代码,你可以找到它或任何其他的 RGB 按照下面的GIF,你可以得到你想要的代码。
- 只需点击 有色细胞 .
- 在 首页 标签,点击 填充颜色旁边的箭头 然后选择 更多颜色 你会看到 RGB 中的代码。 定制 出现的选项卡 颜色 弹出框。
- 运行 这段代码,你的表格将是 根据颜色进行排序 .
阅读更多。 如何在Excel中按颜色排序(4个标准)
4.应用VBA对Excel表按图标排序
假设数据集的表格有图标,以提高可读性。 你可以将 基于图标的表格 在Excel中用 VBA 宏观。
看看上面的数据集,在这里,表格中的数字值旁边有图标。 符号 列,这样我们就可以了解哪个学生的成绩好,哪个学生的成绩不好,哪个学生的成绩一般。
注意,如果你不知道如何在单元格内插入一个图标,你可以简单地用 条件性格式化 在Excel中的功能。
- 选择 整个范围或列。
- 转到 条件性格式化 -> 图标集 然后从选项中挑选你想要的任何图标集。
采取措施,以 基于图标的表格排序 下文给出了答案。
步骤。
- 开放式 Visual Basic编辑器 从 开发商 选项卡和 插入 a 模块 在代码窗口中。
- 在代码窗口,复制以下代码并粘贴。
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon) .SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows) ,.SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon)。Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
你的代码现在可以运行了。
在这里。
- xl5Arrows -> 我们挑选了 一套5支箭 中的选项。 条件性格式化 .
- 项目 (1) -> 指定了 首先 箭头图标的类型。
- 项目 (2) -> 指定了 第二 箭头图标的类型。
- 项目 (3) -> 指定了 第三次 箭头图标的类型。
- 项目 (4) -> 指定了 第四次 箭头图标的类型。
- 项目 (5) -> 指定了 第五次 箭头图标的类型。
- 运行 这段代码,该表将是 根据图标进行排序 .
阅读更多:如何在Excel中自动排序表(5种方法)。
总结
这篇文章告诉你如何 对该表进行排序 在Excel中 VBA 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。