在Excel中自动添加过滤器控件

时间:2014-09-17 15:27:47

标签: excel-vba filter autofilter vba excel

我对VBA很新。 我想编码以在打开工作表时在我的所有单元格中自动添加过滤器控件。

我创建了一个宏并使用了该代码,但它没有做任何事情。

以下是我向所有列添加过滤器控件的代码:

ThisWorkbook.Sheets("my example1").Cells.Select
ThisWorkbook.Sheets("my example1").Selection.AutoFilter

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我认为您需要在过滤之前更加具体地了解您选择的内容, e.g。

ThisWorkbook.Sheets("my example1").Range("A1:Z1")

或整个顶行:

ThisWorkbook.Sheets("my example1").Range("1:1")

并且,如上所述,检查自动过滤器是否已关闭:

If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData

答案 1 :(得分:0)

我最终将过滤器代码放在了sheet_change事件中。

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Sheets("YTD Detail").Select
Cells.Select
Selection.AutoFilter
Range("A1").Select

Application.ScreenUpdating = True

End Sub