2

我需要一些关于在 excel 中过滤的帮助,并且非常感谢任何帮助。我希望能够按变量标准进行过滤,也可能按多个变量标准进行过滤。请允许我尽可能简单地解释这一点

我有一个工作簿,在表 2 中我有数据。在工作表 1 中,我有一个需要在工作表 2 中过滤的变量列表。这些变量的数量会有所不同,当然每个单元格中的数据也会有所不同。

现在这是我提出谦虚要求的地方。

我可以有两个独立功能的代码吗:

1)让excel注册有多少变量,并逐个过滤这些变量(我有代码可以满足我的要求,然后重置过滤器)。

2)为excel注册变量并同时过滤所有变量(多个条件)。

我附上了一个示例 excel 电子表格的链接。我希望它有帮助!

http://www.filedropper.com/excelexample

我真的很感激这方面的任何帮助。

谢谢你

4

1 回答 1

2

在这个小示例中,我们从 Info 选项卡中收集值,删除所有空白并将该过滤器应用于 Data 选项卡的第一列,以便显示所有匹配项:

Sub luxation()
    Dim sh1 As Worksheet, N As Long
    Dim st As String
    Set sh1 = Sheets("Info")
    N = sh1.Cells(Rows.Count, "A").End(xlUp).Row

    For i = 2 To N
        v = sh1.Cells(i, 1).Value
        If v <> "" Then
            st = st & v & ","
        End If
    Next i
    st = Mid(st, 1, Len(st) - 1)
    Arr1 = Split(st, ",")

    Sheets("Data").AutoFilterMode = False
    With Sheets("Data").Range("$A$1:$C$9244")
        .AutoFilter Field:=1, Criteria1:=Arr1, Operator:=xlFilterValues
    End With
End Sub

在下一个示例中,过滤器值按顺序应用:

Sub luxation2()
    Dim sh1 As Worksheet, N As Long
    Dim st As String
    Set sh1 = Sheets("Info")
    N = sh1.Cells(Rows.Count, "A").End(xlUp).Row

    For i = 2 To N
        v = sh1.Cells(i, 1).Value
        If v <> "" Then
            st = st & v & ","
        End If
    Next i
    st = Mid(st, 1, Len(st) - 1)
    Arr1 = Split(st, ",")
    Sheets("Data").Activate
    For i = LBound(Arr1) To UBound(Arr1)
        Sheets("Data").AutoFilterMode = False
        With Sheets("Data").Range("$A$1:$C$9244")
            .AutoFilter Field:=1, Criteria1:=Arr1(i), Operator:=xlFilterValues
        End With
        MsgBox "Check out the filter"
    Next i
End Sub
于 2013-10-07T13:06:56.930 回答