You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

VBA库存数据筛选:如何添加多条件排除规则?

修改VBA代码添加多条件排除规则

没问题,这事儿很容易搞定!我们只需要把新增的两个排除规则用Or和原来的条件组合起来就行,这样只要仓位是SO0000/WG0000/SR0000且数量为0的行,都会被排除掉。

修改后的完整代码

With WbCSV.Sheets(1)
    vDB = .UsedRange
    For i = 1 To UBound(vDB, 1)
        'AA列=27,AP列=42
        ' 扩展条件:只要满足三个排除规则中的任意一个,就跳过该行
        If (vDB(i, 27) = "SO0000" And vDB(i, 42) = 0) _
        Or (vDB(i, 27) = "WG0000" And vDB(i, 42) = 0) _
        Or (vDB(i, 27) = "SR0000" And vDB(i, 42) = 0) Then
        Else
            '获取动态数组对应内容,转换矩阵维度
            n = n + 1
            ReDim Preserve vR(1 To 5, 1 To n)
            vR(1, n) = vDB(i, 1)
            vR(2, n) = vDB(i, 2)
            vR(3, n) = vDB(i, 3)
            vR(4, n) = vDB(i, 27)
            vR(5, n) = vDB(i, 42)
        End If
    Next i
End With
'关闭文本文件
WbCSV.Close (0)
'将动态数组写入Sheet2,转换矩阵维度
With Ws
    .UsedRange.Clear
    .Range("a1").Resize(n, 5).Value = WorksheetFunction.Transpose(vR)
End With
Worksheets("Sheet2").Columns("A:E").AutoFit
Application.ScreenUpdating = True

关键修改说明

我把原来的单条件判断,改成了用Or连接的三个组合条件:

  • 每个条件都是「仓位等于指定值 数量为0」
  • 三个条件之间用Or连接,意味着只要满足其中任意一个,就会触发排除逻辑(跳过该行)

如果以后还要加更多类似的排除规则,直接在后面继续用Or追加新的(vDB(i,27)="XXX" And vDB(i,42)=0)就行,非常灵活。

内容的提问来源于stack exchange,提问作者Wildsniper911

火山引擎 最新活动