FilterOperator

    public enum FilterOperator
    {
        IsLessThan = 0,
        IsLessThanOrEqualTo = 1,
        IsEqualTo = 2,
        IsNotEqualTo = 3,
        IsGreaterThanOrEqualTo = 4,
        IsGreaterThan = 5,
        StartsWith = 6,
        EndsWith = 7,
        Contains = 8,
        DoesNotContain = 9,
        IsContainedIn = 10,
        IsNotContainedIn = 11,
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果给定的条件是一个表格,你可以先将条件表格存储在一个数组中,然后在筛选数据时循环遍历数组中的每一行,并使用 `Criteria1` 和 `Operator` 参数来设置筛选条件。示例代码如下: ``` Sub FilterData() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") '替换为你的工作表名 '将条件表格存储在数组中 Dim filterTable As Variant filterTable = ws.Range("F1:I4").Value '替换为你的条件表格范围 '确定要筛选的数据范围 Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row '假设第一列不为空,替换为你的数据范围 '应用筛选 Dim i As Long For i = LBound(filterTable, 1) + 1 To UBound(filterTable, 1) '从第二行开始循环,跳过表头 Dim filterCriteria As String Dim filterOperator As XlAutoFilterOperator filterCriteria = filterTable(i, 2) filterOperator = GetOperator(filterTable(i, 3)) '根据条件表格中的运算符获取 Operator 参数的值 ws.Range("A1:D" & lastRow).AutoFilter Field:=filterTable(i, 1), Criteria1:=filterCriteria, Operator:=filterOperator Next i End Sub Function GetOperator(operatorString As String) As XlAutoFilterOperator Select Case operatorString Case "=" GetOperator = xlAnd Case "<>" GetOperator = xlOr Case ">" GetOperator = xlAnd Case "<" GetOperator = xlAnd Case ">=" GetOperator = xlAnd Case "<=" GetOperator = xlAnd End Select End Function ``` 上述代码中,我们假设要筛选的数据在 Sheet1 工作表中的第一列到第四列,最后一行不为空。条件表格范围为 F1:I4,第一列为要筛选的列号,第二列为筛选条件,第三列为运算符。由于 `Operator` 参数需要传入 `XlAutoFilterOperator` 类型的枚举值,我们编写了一个 `GetOperator` 函数来将条件表格中的运算符转换成枚举值。你可以根据自己的需求修改这些参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值