迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Vba >

VBA 中具有多个条件的自动过滤器

作者:迹忆客 最近更新:2023/05/09 浏览次数:

我们将介绍如何使用 AutoFilter 在 VBA 中过滤一系列单元格或 Excel 表格。

VBA 中具有多个条件的自动过滤器

在许多情况下,我们需要在处理 VBA 代码时在 Excel 中使用过滤器。如果我们想获取特定日期的销售数据,我们需要在 VBA 中的日期列上使用日期过滤器。

VBA 使用 AutoFilter 为这个问题提供了解决方案。

我们将首先了解如何在范围内使用自动过滤器,以便用户可以过滤数据。首先,让我们有一些数据,如下所示。

在 VBA 中使用自动过滤器的示例数据

如下所示,我们将使用工作表的 Range 方法来选择要应用 AutoFilter 的范围。

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter
End Sub

输出:

在 VBA 中的样本数据上激活自动过滤器

我们必须指定范围的标题,在我们的例子中是 A1:C1,并利用对象范围的 AutoFilter 技术来应用自动过滤器。如上所示,这将导致我们范围内的过滤器被激活。

在 VBA 中使用字段和条件进行自动过滤

VBA 还允许我们过滤具有特定值的特定字段。为此,我们必须定义要应用过滤器的字段。

我们还将定义我们想要应用过滤器的标准。如果我们希望仅过滤 Laptop 的第二列,我们可以运行如下所示的代码。

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:="Laptop"
End Sub

输出:

在 VBA 中使用带有某些条件的自动过滤器

正如我们从上面的示例中看到的那样,我们可以通过定义字段和条件的值来使用具有所需值的 AutoFilter。上面显示了使用我们在 VBA 代码中提供的标准的过滤器的结果。

VBA 中具有多个条件的自动过滤器

假设我们想为我们的过滤器设置多个标准。在这种情况下,当我们需要过滤一个具有多个值的字段时,我们可以通过在 AutoFilter 中使用另一个参数运算符来做到这一点。

我们可以使用 xlFilterValues 运算符并将值传递给数组中的 Criteria 参数,以根据这些值进行过滤,如下所示。

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:=Array("Laptop", "iPhone"), _
                                 Operator:=xlFilterValues
End Sub

输出:

自动过滤器在 VBA 中的样本数据上使用多个值激活

从上面的例子中我们可以看到,当我们运行代码时,AutoFilter 被激活了多个值并显示了我们想要的结果。

VBA 中具有多个条件的自动过滤日期范围

如果我们想根据日期范围使用 AutoFilter,或者如果我们要获取特定日期范围之间的数据,我们必须使用带有 xlAnd 运算符的多个 Criteria 参数。

让我们通过一个示例,将更多数据添加到我们的示例表中,日期如下。

在 VBA 中使用带有日期范围的自动过滤器的示例数据

从上面的数据可以看出,我们添加了一个带有日期的新列。如下所示,我们将使用这些日期来过滤 5 月 20 日至 25 日之间的数据。

#VBA
Sub test()
Sheet1.Range("A1:D1").AutoFilter Field:=1, Criteria1:=">=05/20/2022", Operator:=xlAnd, Criteria2:="<=05/25/2022", Operator:=xlFilterValues
End Sub

输出:

在 VBA 中使用样本数据的日期范围激活自动过滤器

正如我们从上面的示例中看到的,我们可以通过提供两个日期标准并使用带有 xlAnd 值的 Operator 参数来轻松过滤日期范围内的数据。

一些 Operator 参数及其描述如下所述。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 VBA 中计算列数

发布时间:2023/03/19 浏览次数:103 分类:Vba

本教程演示如何计算 VBA 中的列数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便