0

我一天中的大部分时间都在努力解决这个问题,并在此过程中使用从网络上借来的代码使 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

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

谢谢亚历克斯

4

1 回答 1

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
于 2013-02-26T22:43:38.663 回答