Excel VBA:在一个范围内使用多个标准的高级过滤器(5种方法)-PDF

  • Share This
Hugh West

当处理大量的数据并需要一次设置多个过滤器时。 高级过滤 ǞǞǞ 它也可以用于通过删除副本来清理你的数据。 在应用 高级过滤器 ,在 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 先进的过滤器在 ǞǞǞ 所有这些方法都应该用于教学和练习你的数据。 看看练习册,把你学到的东西用起来。 因为你的重要支持,我们受到鼓舞,继续举办这样的研讨会。

如果你有任何问题,请不要犹豫,与我们联系。 请在下面的评论部分让我们知道你的想法。

ǞǞǞ 优秀 工作人员将尽快答复您的询问。

与我们呆在一起,继续学习。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.