Table of contents
当处理大量的数据并需要一次设置多个过滤器时。 高级过滤 在 ǞǞǞ 它也可以用于通过删除副本来清理你的数据。 在应用 高级过滤器 ,在 VBA 在本教程中,我们将向你展示如何应用 VBA高级过滤器 中的多个标准范围。 ǞǞǞ .
下载实践工作手册
下载这本练习手册,在阅读本文时进行练习。
VBA高级过滤器.xlsm在Excel中用VBA高级过滤器对一个范围内的多个标准进行过滤的5种有效方法
在下面的章节中,我们将讨论 5 使用的方法 VBA高级过滤器 一开始,你可能需要了解一下 "多标准 "的语法。 VBA高级过滤器 .
VBA高级过滤器语法。
- 高级过滤器。 指的是一个范围对象。 你可以在你想应用过滤器的地方设置你的范围。
- 行动。 是一个必要的参数,有两个选项。 xlFilterInPlace 或 xlFilterCopy . xlFilterInPlace 是用来过滤数据集所在的地方的值。 xlFilterCopy 是用来在另一个需要的位置获得过滤器的值。
- 标准范围。 代表该值将被过滤的标准。
- CopyToRange: 是你要保存过滤结果的位置。
- 独一无二。 是一个可选的参数。 使用 真 参数,只过滤唯一的值。 否则,在默认情况下,它被认为是 假的 .
在下面的图片中,提供了一个样本数据集来应用我们想要执行的所有过滤器。
1.在Excel中为范围内的OR条件应用VBA高级过滤器
在第一种方法中,我们将应用 或 标准,使用 VBA高级过滤器 比方说,我们想过滤产品名称的数据 饼干 和 巧克力 要应用 或 请按照下面列出的步骤来完成任务。
步骤1。
- 新闻 符号 + F11 以打开 VBA宏程序 .
- 点击进入 插入。
- 选择 模块。
第2步。
- 然后,粘贴以下内容 VBA 代码来应用 或。
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() '声明数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1") .Range("B14:E16") ' 应用高级过滤器,用标准过滤数据集。Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
第3步。
- 然后,保存程序并按 F5 来运行。
- 因此,你将得到如下图所示的过滤结果。
注意事项。 要扭转这一过程,或去除所有的过滤膏,并运行 VBA 方案。
Sub Remove_All_Filter() On Error Resume Next '命令删除所有过滤器,以显示之前的数据集 ActiveSheet.ShowAllData End Sub
- 结果是,你将得到你的数据集的前一个版本。
阅读更多:Excel VBA实例之带标准的高级过滤器(6个标准)。
2.在Excel中对一个范围内的AND标准进行VBA高级过滤
与之前的方法类似,我们现在将执行 VBA 高级过滤器的 和 标准。 假设我们想知道饼干的价格为 $0.65 如下面的截图所示。 为了应用 或 的标准,你应该把值放在不同的列中。 要应用 和 标准,请遵循以下指示。
步骤1。
- 打开 VBA宏程序 ,按 符号 + F11
- 打开后 VBA宏程序 ,粘贴以下内容 VBA 在一个新的模块中的代码。
Sub Apply_VBA_Advanced_Filter_for_and_Criteria() '声明数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2") .Range("B14:E15") '应用高级过滤器,用标准过滤数据集。Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
第2步。
- 新闻 F5 在你保存程序后运行该程序。
- 最后,得到过滤后的结果。
阅读更多。 在Excel中用VBA将数据复制到另一个具有高级过滤器的工作表中
3.在Excel中利用VBA高级过滤器对一个范围内的OR与AND条件进行过滤
你也可以应用 或 和 和 标准两者结合起来。 例如,你想获得以下数值 饼干 或 巧克力 ,但对于 饼干。 还有一个标准价格 $0.65 请按照下面的程序来完成这项工作。
步骤1。
- 粘贴以下内容 VBA 打开后的代码 VBA宏程序 .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() '声明数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3") .Range("B14:E16") ' 应用高级过滤器,使用标准过滤数据集。Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
第2步。
- 然后,先保存程序,按 F5 来运行它。
- 因此,你会发现这些数值具有一定的 和 和 或。
阅读更多:在Excel中根据一列的多个标准应用高级过滤器
类似的阅读。
- Excel中多个标准的高级过滤器(15个合适的例子)
- 动态高级过滤器Excel(VBA & Macro)
- 如何在VBA中使用高级过滤器(一步一步的指导原则)
- 在Excel中使用标准范围的高级过滤器(18种应用)
- 淘宝网上有很多卖家都在卖 "淘宝网"。
4.在Excel中使用VBA高级过滤器获取多条件的唯一值
此外,如果你的数据集中有重复的数据,你可以在过滤时将其删除。 我们将把 独特的 争论到 真 遵循概述的指示,只获取唯一的值并删除重复的值。
步骤1。
- 首先,打开 VBA 宏的方法是按 符号 + F11.
- 粘贴以下内容 VBA 在一个新的模块中的代码。
Sub Apply_VBA_Advanced_Filter_for_Unique_Values() '声明数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4") .Range("B14:E16") '应用高级过滤器,使用标准过滤数据集。Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub
第2步。
- 然后,按 F5 保存后运行该程序。
- 因此,你将只获得唯一的值。
阅读更多:如何在Excel中使用高级过滤器只过滤唯一的记录
5.执行VBA高级过滤器的条件案例
除了前面的方法之外,你还可以用公式来应用条件。 例如,我们想找到 总价格 大于 $100 要做到这一点,只需遵循以下步骤。
步骤1。
- 首先,要打开 VBA宏程序 ,按 符号 + F11 .
- 选择一个新的 模块 并粘贴以下内容 VBA代码 .
Sub Apply_VBA_Advanced_Filter_for_Formula() '声明数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") ' 应用高级过滤器,用标准过滤数据集。Dataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
第2步。
- 第二,保存程序并按 F5 按钮来查看结果。
注意事项。 此外,无论是在新的范围还是在新的工作表中,你都可以在一个有利的空间获得结果,方法是应用 xlFilterCopy 简单地说,将 VBA 代码,并运行它们,以获得以下结果 第六张 在范围内 B4:E11 .
宣布数据集范围和标准范围的变量 Dim Dataset_Rng As Range Dim Criteria_Rng As Range '设置数据集范围和标准范围的位置和范围 Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") '应用高级过滤器,使用标准过滤数据集 Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub
- 因此,在一个新的工作表中看到最终结果 'Sheet6' .
阅读更多:如何在Excel中使用高级过滤器(如果标准范围包含文本)?
总结
综上所述,我希望你现在明白如何使用 VBA 先进的过滤器在 ǞǞǞ 所有这些方法都应该用于教学和练习你的数据。 看看练习册,把你学到的东西用起来。 因为你的重要支持,我们受到鼓舞,继续举办这样的研讨会。
如果你有任何问题,请不要犹豫,与我们联系。 请在下面的评论部分让我们知道你的想法。
ǞǞǞ 优秀 工作人员将尽快答复您的询问。
与我们呆在一起,继续学习。