2016-08-11 3 views
-2

列EをフィルタリングするExcelでボタンを作成しようとしています。列Eの名前はカテゴリ(オンサイト、電子メール、電話)です。オンサイト用、電子メール用、電話用の3つのボタンを作成したいと思います。列内の特定のテキストをフィルタリングするボタンをExcelで作成する

たとえば、オンサイトをクリックすると、すべてのオンサイト質問が表示され、他の2つのボタンも同じように表示されます。

Sub Button1_Click() 
    Range("E:E").AutoFilter Field:=1, Criteria1:="phone" 
End Sub 

このコードでは、私は電話での記録のみを表示し、オンサイトと電話の両方の記録は表示しません。

また、プレフォンで分類されているすべての質問は表示されません。 20の質問がある場合、それは10だけをフィルタリングします。

ありがとう!

+2

あなたの質問は何ですか?どうすればいいですか? 「どこから始めますか?」このフォーラムでは広すぎます。このフォーラムは、上記のコードの特定の問題を克服するために役立たない既存のコードを持つユーザーのためのものです。 –

+0

あなたが探しているものは正確にはわかりませんが、スライサーが役立つかもしれません。これは、基準に基づいてデータをフィルタリングします。残念ながら、ピボットテーブルでのみ動作します。 [Chandoo](http://chandoo.org/wp/2015/06/24/introduction-to-slicers/)と[Microsoft](https://msdn.microsoft.com/en-us/library/)を参照してください。 gg399135(v = sql.110).aspx)を参照してください。 – PartyHatPanda

+0

サブのButton1 Click() レンジ( "E:E")。オートフィルタフィールド:= 1、Criteria1:= "プリ電話" サブ を終了これは私がボタンのいずれかのためにコード化されたものですが、それはdoesnのうまくいきません。 – sjb12

答えて

0

これは参考になる場合があります。 3つのマクロをこのフォーマットで書き出し、フィルタリングするものに基づいてそれぞれの 'criteria'変数を変更することができます。これには、複数のエントリを持つセルが含まれます。次に、それぞれが独自のマクロにリンクする3つのボタン(tutorial here)を挿入できます。それぞれのマクロ名を変更してください!

Sub ManualFilter() 

Dim criteria As String 

'What to look for 
criteria = "Email" 

'Where to look (Column E) 
Dim myRange As Range 
Set myRange = Range("E2", Cells(Rows.Count, "E").End(xlUp)) 

Dim myCell As Range 

'Compare with criteria 
For Each myCell In myRange 
    'if it matches: 
    If InStr(1, myCell.Value, criteria) <> 0 Then 
     myCell.EntireRow.Hidden = False 
    Else 
     'if it doesn't match: 
     myCell.EntireRow.Hidden = True 
    End If 
Next myCell 

End Sub 
関連する問題