2017-05-26 15 views
1

私は自分のプロジェクトを行っていますが、いくつか問題が発生しています。さらに、私の範囲は、VBAをプロジェクトの主なソフトウェアとして使用することでした。フィルタテーブルVBA

今のところ、ドロップダウンリストを使用してテーブルをフィルタリングして、特定の部門と表示したい週のみを表示できることを期待しています。

範囲(「C7:L26」)から、セル(F2)またはセル(J2)をフィルタするたびに、ドロップダウンリストから必要なデータが残されます。

たとえば、セル(F2)= 2、セルJ2 = e、範囲( "C7、L26")の場合、値 "e"の部門のみが表示され、2週目が表示されます。部門価値または週価値を持たないセルに関しては、それはクリアされるか空白になります。

また、ボタンを押してテーブルをデフォルトに戻すことができれば幸いです。

私をガイドしてください、本当にあなたの助けが必要です!

[1] http://imgur.com/GNGyh91 [2] http://imgur.com/uuh2Y1u

アップデート:私は試してみました記録マクロ

Sub Filter() 
' 
' Filter Macro 
    Range("B9:BR38").Select 
    ActiveWindow.ScrollRow = 32 
    ActiveWindow.ScrollRow = 5 
    ActiveWindow.ScrollRow = 1 
    Selection.AutoFilter 
    ActiveSheet.Range("$B$9:$BR$38").AutoFilter Field:=1, Criteria1:="e" 

End Sub 

アップデート2:代わりに記録マクロの、私は私のテーブルのデータをフィルタリングするテキストボックスを使用することにしました。しかし、私はテーブルが私がテキストボックスに入力したものに応じてフィルタリングしていないことに気付きました。

Private Sub TextBox1_Change() 
 

 
Dim Text 
 

 
Text = TextBox1.Value 
 

 
    If Text <> "" Then 
 
    Sheet2.Range("A5:AV26").AutoFilter 
 
    Field = 1 
 
    criteria = "text,_" 
 
    visibledropdown = False 
 
    
 
    Else 
 
     Sheet2.AutoFilterMode = False 
 
    
 
    End If 
 

 

 
    
 
    
 
    
 
    
 
    
 
End Sub

+0

これまでに試したコードはありますか?これは、コーディングを完了させる場所ではないため、作成して修正するのが最も簡単です。 – Cyril

+0

autofilterを手軽に保つには '.ShowAllData'、オートフィルタを取り除くには' .AutoFilterMode = False'を使うことができます。 – Jeeped

+0

こんにちは@Jeeped、私は今のコードを更新しています。しかし、私は上記の私の "第2のアップデート"が、私のテーブルはフィルタリングされていないことに気づいた。あなたは私を助けて、私が間違っていたことを教えていただけますか? =( –

答えて

0

カンマで区切って同じ行にパラメータを維持する必要があり、それがCriteria1、ない基準です。ドロップダウン矢印を非表示にするには、それぞれ個別に行う必要があります。以下のコードは、フィルタリング対象のフィールドのドロップダウンを非表示にします。もちろん、1つのフィールドだけをフィルタリングしている場合、フィルタリングはすべての列を通過するので、Sheet2.Range("A5:A26")を使用することができます。

If True Then 
    Sheet2.Range("A5:AV26").AutoFilter Field:=1, Criteria1:="text,_", VisibleDropDown:=False 
Else 
    If Sheet2.AutoFilterMode Then Sheet2.AutoFilterMode = False 
End If 

詳細については、Range.AutoFilter Methodを参照してください。

+0

こんにちは、私は複数のフィールドを持っていますか? –

関連する問題