具有多个可变条件的自动过滤器的问题

问题描述 投票:0回答:1

[我的任务是要有一张工作表,其中包含一列充满项目ID的列,称为“ Werkzeugtabelle Vormontage”,另一张工作表中包含表1中列出的项目ID的一部分。现在,我要按与工作表2中的工作表相似。因此,基本上将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”是未经过滤的香草薄片。

我的代码的问题是,每当我在两张纸之间有1个以上相似的Item ID时,它就不会显示,因为我似乎只是在寻找1条条件。我试图做一个循环的解决方法,但是没有用。

我该如何进行这项工作?

excel vba criteria autofilter
1个回答
0
投票
好吧,我想我已经找到了解决方案。至少它会做所有的事情,并且不会因为错误而给我发送垃圾邮件。你们可以仔细检查一下这是否是一个好的代码吗?

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”工作表仍然存在,并且仅对其进行过滤>将其复制到工作簿中的正确位置,然后将过滤器重置为原始文件。
© www.soinside.com 2019 - 2024. All rights reserved.