如何在数据更改时自动刷新 Excel 自动过滤器?

sor*_*rin 19 microsoft-excel

如何在数据更改时自动刷新 Excel 自动过滤器?

用例:我将一个单元格的值更改为已过滤的值。我想看到当前行消失而无需做任何其他事情。

小智 9

与此交换代码似乎也能解决问题(至少在 Excel 2010 中):

Private Sub Worksheet_Change(ByVal Target As Range)

    ActiveSheet.AutoFilter.ApplyFilter

End Sub
Run Code Online (Sandbox Code Playgroud)


小智 5

只是为了巩固答案:

索林 说:

右键单击您的工作表名称,选择“查看代码”并粘贴下面的代码。粘贴后,单击左上角“文件”下方的 Excel 图标,或键入 Alt-F11,返回到电子表格视图。

这将启用自动刷新。不要忘记以支持宏的 .xlsm 格式保存文件。

Chris 使用了这段代码(我在 2010 年刚刚这样做过):

Private Sub Worksheet_Change(ByVal Target As Range)

    ActiveSheet.AutoFilter.ApplyFilter

End Sub
Run Code Online (Sandbox Code Playgroud)

如果您不展开帖子,您只会看到很长的答案!;)


sor*_*rin 2

右键单击您的工作表名称,选择“查看代码”并粘贴下面的代码。粘贴后,单击左上角“文件”下方的 Excel 图标,或键入 Alt-F11,返回到电子表格视图。

这将启用自动刷新。不要忘记以支持宏的格式保存文件.xlsm

Private Sub Worksheet_Change(ByVal Target As Range)

    If Me.FilterMode = True Then
        With Application
           .EnableEvents = False
           .ScreenUpdating = False
        End With

        With ActiveWorkbook
            .CustomViews.Add ViewName:="Mine", RowColSettings:=True
          Me.AutoFilterMode = False
            .CustomViews("Mine").Show
            .CustomViews("Mine").Delete
        End With


         With Application
           .EnableEvents = True
           .ScreenUpdating = True
        End With
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)