vba - 如何过滤列中的4个数字

标签 vba excel

我知道如何过滤小于 25 和大于 50 等 2 个数字,但我想知道如何过滤 250 到 290 之间或 70 到 110 之间的 4 个数字。

到目前为止我尝试过的代码是

ActiveSheet.Range("$F$4:$AK$18").AutoFilter Field:=26, _
    Criteria1:=">=70", Operator:=xlAnd, Criteria2:="<=110"

ActiveSheet.Range("$F$4:$AK$18").AutoFilter Field:=26, _
    Criteria1:=">=250", Operator:=xlAnd, Criteria2:="<=290"


ActiveSheet.Range("$F$4:$AK$18").AutoFilter Field:=26, _
    Criteria1:=Array(">70", "<110", ">250", "<290"), Operator:=xlFilterValues


ActiveSheet.Range("$F$4:$AK$18").AutoFilter Field:=25, _
    Criteria1:=">=70", Operator:=xlAnd, Criteria2:="<=110", Operator:=xlAnd, _
    Criteria2:=">=250", Operator:=xlAnd, Criteria2:="<=290"

这些工作都不能让我想知道我想做的事情是否可行。

最佳答案

您需要一个 高级过滤器对于你想要达到的目标。以下是如何申请:

Range("A5:C10").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
    ("A1:D2"), Unique:=False
  • 确保您的数据具有列标题。
  • 您需要创建一个 标准部分 在您的主要数据之上。为此,请在数据上方插入至少 3 个空白行。第一个用于标题,第二个将获取标准;第三个必须为空白(用于分隔主要数据和标准部分。见下图。
  • 将主数据中的列标题复制/粘贴到新创建的第一行(见下图)。
  • 从第二行开始,提供您的标准。每个标准行将与其他标准行进行“或”运算。如果您需要“与”它们,请使用单行。
  • 如果您需要在单个列上“与”两个或多个条件,请在条件范围中创建具有相同标题的新列。例如,我想在 上添加两个条件销售 下图中的列,所以我添加了两个 销售 条件范围中的列(C 和 D)。
  • 使用标准运算符提供您的条件。
  • 现在选择高级过滤器来自 的对话资料 主功能区中的选项卡。选择您的数据范围(在我的示例中为 A5:C10)、条件范围(在我的示例中为 A1:D2),然后单击确定。确保在选择条件范围时不包括空白行。

  • this article更多示例。

    enter image description here

    关于vba - 如何过滤列中的4个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45683298/

    相关文章:

    sql-server - 检查 SQL Server 服务器可用性的最快方法是什么?

    excel - VBA 不匹配 IF 语句

    vba - 在一个工作簿中运行的宏在另一工作簿中运行时会抛出错误 1004

    python - 如何导入带有 "occasional"引号的 csv(R 和/或 Pandas)?

    vba - Excel:如果 B 列或 C 列中的单元格为空,则清除 A 列单元格中的内容

    excel - 通过宏查找代码并将其添加到模块中

    excel - 无法理解为什么 VBA 在验证 If 语句时退出我的 For-Next 循环

    vba - 使用 vba 从给定名称列表创建 Excel 文件

    excel - 如何找到整个Excel工作簿中的最大值

    c# - 哪一行代码仍在使用该文件而不释放它?