首页 > 解决方案 > 具有多个变量标准的自动过滤器

问题描述

我有一张表,其中包含一列名为“Werkzeugtabelle Vormontage”的项目 ID 和另一个表,其中包含表 1 中列出的部分项目 ID。

我想通过与工作表 2 中的项目 ID 相似的项目 ID 过滤工作表 1。所以基本上将具有更多 ID 的工作表切成具有较少 ID 的工作表的大小。(删除不相似的也是一种选择,但不知道它是如何工作的。)

If CheckSheet("BMV Vormontage") Then
    Sheets("Werkzeugtabelle").Select
    Sheets("Werkzeugtabelle").Copy After:=Sheets("BMV Vormontage")
    ActiveSheet.Name = "Werkzeugtabelle Vormontage"
    lRow = Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Restanschluss Vormontage").Select
    xRow = Cells(Rows.Count, 11).End(xlUp).Row
    'CountUnique ("K3:K100")
    'critCount = CountUnique.Count
    For i = 3 To lRow
        For a = 10 To xRow
            Sheets("Werkzeugtabelle Vormontage").Cells(i, 1).AutoFilter Field:=1, Criteria1:=Sheets("Restanschluss Vormontage").Cells(a, 11).Value
        Next a
    Next i
End If

CheckSheet 正在寻找该工作表以获得工作簿中的起点。“Werkzeugtabelle”是未经过滤的香草片。

每当我在两张纸之间有多个类似的项目 ID 时,它就不会显示,因为我只是在寻找一个看起来的标准。

我试着做一个循环。

标签: excelvbacriteriaautofilter

解决方案


好吧,我想我已经找到了解决方案。至少它完成了它所做的一切,并且不会向我发送错误信息。你们能仔细检查一下这是否是一个好的代码吗?

Sub Werkzeugtabelle_splitten()

Dim ws As Worksheet
Dim rng As Variant


Set ws = Sheets("Werkzeugtabelle")

' Splitten Vormontage
If CheckSheet("BMV Vormontage") Then
rng = Sheets("Restanschluss Vormontage").Range("K10:K100").Value

ws.Range("A3").AutoFilter _
Field:=1, _
Criteria1:=Application.Transpose(rng), _
Operator:=xlFilterValues
ws.Copy After:=Sheets("BMV Vormontage")
ActiveSheet.Name = "Werkzeugtabelle Vormontage"
ws.ShowAllData
End If

End Sub

所以我已经让原始的“Werkzeugtabelle”工作表仍然存在,它只会过滤它>将它复制到工作簿中的正确位置,然后重置原始过滤器。


推荐阅读