我需要一些关于在Excel中过滤的帮助,并且非常感谢任何帮助。 我希望能够通过变量标准进行过滤,并且可能通过多个变量标准进行过滤。 请允许我尽可能简单地解释这个
我有一个工作簿,在Sheet 2中我有数据。在表1中,我有一个变量列表,我需要在表2中对其进行过滤。这些变量的数量会有所不同,当然每个单元格中的数据也会有所不同。
现在这里是我提出谦卑要求的地方。
我是否可以拥有两个独立功能的代码:
1)为了excel注册有多少变量,并逐个过滤每个变量(我的代码将执行我需要的操作,然后重置过滤器)。
2)excel注册变量并同时过滤所有变量(多个标准)。
我附上了一个示例excel电子表格的链接。我希望它有所帮助!
http://www.filedropper.com/excelexample
我非常感谢你提供任何帮助。
谢谢
答案 0 :(得分:2)
在这个小例子中,我们从“信息”选项卡中收集值,删除所有空格并将该过滤器应用于“数据”选项卡的第一列,以便显示所有匹配项:
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