Excel高级筛选器 - 筛选具有多个单元格值的表

时间:2013-02-26 22:37:54

标签: vb.net excel excel-vba vba

我在这一天的大部分时间里一直在努力解决这个问题,并且在这个过程中使用来自网络的借用代码设法使Excel 2010崩溃了几次。

我有一个表(见下文),其中包含一列名为“ID”的唯一值。我还有一个ID列表,例如[2 5 7 8]这是表格中的一部分。我只想显示与子集中的条目相对应的表条目。

我确信它一定可以,但我的VB技能有限。

ID   A__    B ____     C _
1,   1.1,   2.1,      -2.1
2,   1.2,   2.2,      -2.1
3,   1.3,   2.3,      -2.1
4,   1.4,   2.4,      -2.1
5,   1.5,   2.5,      -2.1
6,   1.6,   2.6,      -2.1
7,   1.7,   2.7,      -2.1
8,   1.8,   2.8,      -2.1

有人可以为此提出解决方案吗?

由于 亚历

1 个答案:

答案 0 :(得分:1)

在VBA中没有必要这样做。

只需添加另一列并使用以下公式填充:(假设它从第2行开始,ID在A列中,并且您选择的ID列表在Sheet2中!A1:A10 - 相应地调整)

=--NOT(ISERROR(MATCH(A2,Sheet2!$A$1:$A$10,0)))

复制此公式。对于列表中具有ID的每一行,此公式将返回TRUE - 否则为FALSE。现在你只需要应用一个自动过滤器和过滤器为TRUE - 完成! : - )

如果您将此代码放在工作表中,您的选择将自动更新:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.Range("A1:A10")) Is Nothing Then Exit Sub

    With Worksheets("Sheet1")
        .AutoFilterMode = False
        On Error Resume Next
        .Range("$A:$C").AutoFilter Field:=3, Criteria1:="1"
    End With
End Sub