0

私は一日中これに取り組んでおり、Webから借用したコードを使用して、その過程でExcel2010を数回クラッシュさせることができました。

'ID'と呼ばれる一意の値の1つの列を持つテーブル(以下を参照)があります。また、テーブル内の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 に答える