VBA

2017-01-31 12 views
1

でMS Excelのオートフィルタのユニークな値は、私は、テーブルに(A)をフィルタリングする機能を持っていなさい:VBA

(A) | B | C | D | E 
x 
x 
y 
x 
zx 

は今、私は行の出力のすべての一意の値(A)に

をしたいです - > 'x'、 'y'、 'zx'

フィルタリングする前に、この情報にアクセスする手掛かりはありません。

Sub MakeFilter() 
    Worksheets("Sheet1").Range("A3:AT1000").AutoFilter field:=1, Criteria1:="x", _ 
     VisibleDropDown:=True 
End Sub 

画像では、手動でどのように行われたかを確認できます。ピーターはリストの2倍ですが、フィルター選択リストでは1回だけです。私は選択ボックスにそれらの値だけを必要とします。それらのすべて。

First image Second image

+0

コードを共有していただけますか? –

+0

私はしましたが、それは非常に小さなコードです。 –

+0

"私は....オプションを出力したい"とはどういう意味ですか? – teylyn

答えて

1

次のコードは、すべての重複を削除して、自動フィルタを適用し、シート2に、列Aをコピーします。ループを使用して、以下に説明するタスクを実行する方がよい場合があります。

Sub MakeFilter() 

Dim ws As Worksheet 
Dim wbnew As Workbook 

x = 0 

Set wbnew = Workbooks.Add(xlWBATWorksheet) 

    For Each ws In ActiveWorkbook 

    wbnew.Sheets(1).Range("A3:A1000").Offset(0, x).Value = ws.Sheets(1).Range("A3:A1000").Value 

    wbnew.Sheets(1).Range("A3:A1000").Offset(0, x).RemoveDuplicates Columns:=Array(1), Header:=xlNo 

    x = x + 1 

    ws.Range("A3:AT1000").AutoFilter field:=1, Criteria1:="x", VisibleDropDown:=True 

    Next ws 

End Sub 

これが役立つかどうか教えてください。

+0

ありがとう、はい、どういうわけか:)。私はこのブックにも50枚あるので、削除された重複テーブルを新しいファイルにコピーすると思います。 シート内にあるエントリを分析するだけです。毎回手動でやりたいとは思わない。 –

+0

シートから50個の新しいファイルを作成するか、50個の列から1個のファイルを作成しますか? –

+0

私は50枚のブックを持っていますが、それぞれにはマトリックスとしての範囲(A3:AT1000)があります。だから、私はファイルを手動でコピーし、1つのファイルでフィルタリングを行い、他のファイルでは複製を削除すると思います。 私は知りたい第2のファイルから、どのような値が存在するのか、おそらくどのくらいの頻度で存在するのでしょうか。そして最後に、最初のファイルの1つの変数をフィルタリングします。 –