Table of contents
ǞǞǞ 排序& 过滤命令 有一个有限的范围,以 过滤数据 .但使用 VBA 你可以 过滤数据 本文将为你提供8个有用的例子,供你使用。 VBA 编码为 过滤数据 在EXCEL中使用 VBA 代码与生动的插图。
下载实践工作手册
你可以从这里下载免费的Excel模板,自己练习。
筛选数据的VBA代码.xlsm使用VBA代码在Excel中过滤数据的8个例子
让我们先来介绍一下我们的数据集,它代表了一些 学生的性别、地位和年龄 .
1.使用VBA代码在Excel中基于文本标准过滤数据
在我们的第一个例子中,我们将使用 VBA 至 过滤器 只有 男性 的学生。 性别 列的数据集。
步骤。
- 右键点击 关于 片名 .
- 那么 选择查看代码 从 上下文菜单 .
不久之后,一个 VBA 窗口将被打开。
- 类型 下面的 代码 在它-
Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub
- 后来,尽量减少 VBA
代码分解
- 在这里,我创建了一个 子 程序。 过滤_数据_文本() .
- 然后用 范围 属性来声明我们各自的 纸张名称 和 范围
- 接下来,我用 自动过滤方法 来使用 标准 我选择的地方 领域:=2 途径 第2栏 .而且 Criteria1:="男性" 至 过滤器 的数据。 男性。
- 此后,对 开放 的 宏程序对话框 , 点击 如下: 开发者>宏。
- 选择 的 巨集名称 中提到的 代码 .
- 最后,只是 按下运行 .
现在看一下,我们只得到了 男性学生的数据 之后 筛选 .
阅读更多。 筛选数据:基于单元格值的6种高效方法
2.应用VBA代码在一列中用多个标准过滤数据
在这里,我们将 过滤器 从数据集的第三列中,我们将 过滤器 为 毕业生 和 研究生 学生。
步骤。
- 遵循前两个步骤 的。 第一个例子 以打开 VBA窗口 .
- 后来。 类型 下面的 代码 在它-
Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="毕业生", Operator:=xlOr, Criteria2:="研究生" End Sub
- 然后最小化 VBA
代码分解
- 在这里,我创建了一个 子 程序。 Filter_One_Column() .
- 然后用 范围 属性来声明我们各自的 纸张名称 和 范围
- 接下来,我用 自动过滤方法 来使用 标准 我选择的地方 领域:=3 途径 第3栏 ...这里。 标准1:="毕业生" 和 标准2:="研究生" 至 过滤器 学生的 状况 .
- 最后,我用 操作员:=xlOr 申请 或 条件 过滤器 为多个标准。
- 在这一刻。 遵循 的 第三步 从 第一个例子 以打开 宏程序对话框 箱子 .
- 后来。 选择 指定的 巨集名称 和 按下运行 .
不久之后,你会得到基于多个标准的过滤行,如下图。
阅读更多。 在Excel中过滤多个条件(4种合适的方法)
3.应用VBA代码在Excel的不同列中用多个标准过滤数据
现在我们将 过滤器 为多个标准- 男性 和 毕业生 学生。
步骤。
- 遵循前两个步骤 的。 第一个例子 以打开 VBA
- 后来。 写 下面的 代码 在它-
Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With 结束 Sub
- 在这之后 最小化VBA窗口 .
代码分解
- 在这里,我创建了一个 子 程序。 Filter_Different_Columns() .
- 然后,我用 与 语句来使用 多列 .
- 然后用 范围 属性来声明我们各自的 纸张名称 和 范围
- 接下来,我用 自动过滤方法 来使用 标准 我选择的地方 领域:=2 途径 第2栏 和 领域:=3 途径 第3栏 .
- 在此,选定 Criteria1:="男性" 为 性别 栏目和 标准1:="毕业生" 为 状况 栏目,以 过滤器 数据来自 不同栏目 .
- 那么 按照第三步 从 第一个例子 以打开 宏程序对话框 .
- 后来。 选择 指定的 巨集名称 和 按下运行 .
下面是多个标准的输出。
阅读更多。 Excel VBA在同一列中通过多个标准进行过滤(6个例子)。
4.使用VBA代码过滤Excel中的前3项
在这个例子中,我们将过滤 前三名学生 按其 年龄 .
步骤。
- 遵循前两个步骤 的。 第一个例子 以打开 VBA窗口 .
- 那么 类型 下面的 代码 在它-
Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub
- 之后,尽量减少 VBA窗口 .
代码分解
- 在这里,我创建了一个 子 程序。 过滤器_Top3_Items() .
- 然后用 操作员:=xlTop10Items 至 过滤器 为 前三名 数据 .
- 现在 按照第三步 从 第一个例子 以打开 宏程序对话框 箱子 .
- 那么 选择巨集名称 准则中提到的,以及 按下运行 .
然后你将得到如下图所示的输出
阅读更多。 如何使用Excel VBA根据单元格值进行过滤(4种方法)
类似读物
- 如何在Excel中应用过滤器时进行复制和粘贴
- 如何过滤Excel中的唯一值(8种简单方法)
- 用VBA在Excel中过滤多个条件(包括AND和OR两种类型)
- 如何在Excel中使用文本过滤器(5个例子)
- 如何在Excel中按日期过滤(4种快速方法)
5.使用VBA代码在Excel中过滤前50个百分点
让我们用 VBA 编码来过滤。 前百分之五十 的学生 根据他们的年龄 .
步骤。
- 首先。 遵循前两个步骤 的。 第一个例子 以打开 VBA窗口 .
- 后来。 类型 下面的 代码 在它-
Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub
- 尽量减少 VBA窗口 .
代码分解
- 在这里,我创建了一个 子 程序。 滤波器_Top50_Percent() .
- 后来,用 操作员:=xlTop10Percent 至 筛选出 排名前50%的人来自 第4栏 .
- 在这一刻。 按照第三步 从 第一个例子 以打开 宏对话框。
- 那么 选择 指定的 巨集名称 和 按下运行 .
总共有 7名学生 因此,对于 百分之五十 画面上显示的是大约 三个学生 .
阅读更多。 如何在Excel中使用利润百分比公式(3个例子)
6.应用VBA代码,使用通配符过滤数据
我们可以用 通配符-*(星号)。 在 VBA代码 在Excel中过滤数据。 从 状态栏 ,我们将只过滤 含有 "Post "的值 .
步骤。
- 遵循前两个步骤 的。 第一个例子 以打开 VBA窗口 .
- 那么 写 下面的 代码 在它-
Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub
- 后来,尽量减少 VBA窗口 .
代码分解
- 在这里,我创建了一个 子 程序。 Filter_with_Wildcard() .
- 然后使用 范围 ("B4") 来设置范围。
- 下一页 , 使用过的 自动过滤 至 过滤器 在 领域:=3 途径 第3栏。
- Criteria1:="*Post*" 至 过滤器 含有 "Post "的值。
- 现在 按照第三步 从 第一个例子 以打开 宏对话框。
- 选择 指定的 巨集名称 和 按下运行 .
然后你就会得到想要的输出。
阅读更多。 如何在Excel中添加过滤器(4种方法)
7.嵌入Excel VBA,在Excel的新工作表中复制过滤后的数据
看到我的数据集中有一些经过过滤的数据。 现在我将它们复制到一个新的工作表中,使用 VBA . 这些代码在工作表中不能正常工作,你必须在模块中应用它们。
步骤。
- 按Alt+F11 以打开 VBA
- 然后点击 插入> 模块 至 打开一个模块 .
- 现在 写 下面的 代码 -
Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4" End Sub
- 然后最小化 VBA
代码分解
- 在这里,我创建了一个 子 程序。 Copy_Filtered_Data_NewSheet() .
- 在这之后宣布了两个变量--x Rng 由于范围和 xWS 作为工作表。
- 然后使用 一个 IF语句 来检查 已过滤
- 后来,用 MsgBox 来显示输出。
- 然后使用 Worksheets("Copy Filtered Data").AutoFilter.Range 来选择 已过滤 范围和使用的 添加 来添加一个新的工作表。
- 最后。 复制Range("G4") 将复制 已过滤 数据到 新板材 .
- 后来。 按照第三步 从 第一个例子 以打开 宏程序对话框 .
- 那么 选择 指定的 巨集名称 和 按下运行 .
现在看到,Excel已经打开了一个新的工作表,并复制了被过滤的行。
阅读更多。 Excel过滤器的快捷方式(3种快速使用方法及示例)
8.应用VBA代码,使用下拉列表过滤数据
在我们的最后一个例子中,我们将首先制作一个性别的下拉列表,然后我们将使用它来过滤数据。 为此,我已经将性别标准放在另一个位置,我们将在 细胞D14 .
步骤。
- 选择 细胞D14 .
- 那么 点击 如下: 数据> 数据工具> 数据验证> 数据验证。
不久之后,一个 对话框 将打开。
选择列表 从 允许下拉 .
那么 点击 "打开 "图标 从 源箱 .
现在 选择标准范围 和 按下回车键 .
- 此时此刻,只要 按OK键 .
现在我们的 下拉式 列表已准备好。
- 现在 遵循前两个步骤 的。 第一个例子 以打开 VBA窗口 .
- 那么 写 下面的 代码 在它-
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Field:=2, Criteria1:=Range("D14") End If End If End Sub
- 那么 最小化VBA窗口 .
代码分解
- 在这里,我创建了一个 私募基金 程序。 Worksheet_Change(ByVal Target As Range).
- 然后,我选择了 工作表 从 一般 和 变化 从 申报 .
- 然后设置 地址 以了解其位置。
- 最后在 基金会 语句使用了 自动过滤 方法与 场地 和 标准
- 现在只是 从下拉列表中选择标准 和 过滤器将被激活 .
这里是 已过滤 选择后输出 男性 从 下拉式 .
阅读更多。 如何在Excel中通过另一个工作表中的列表进行过滤(2种方法)
练习部分
你会在上面给出的Excel文件中得到一个练习表,以练习所解释的方法。
总结
我希望上面描述的程序能够很好地使用 VBA 编码为 过滤器 欢迎在评论区提出任何问题,并请给我反馈。