如何以编程方式重新应用数据filter?

当工作表中的任何数据发生更改时,我需要重新应用filter。 Excel需要手动执行此操作。 我怎样才能重新应用filter编程?

我认为最简单的方法是删除自动filter,并重新应用感谢这种VBA代码(你可以适应VSTO?):

Dim w As Worksheet Dim filterArray() Dim currentFiltRange As String Sub ChangeFilters() Set w = Worksheets("Crew") With w.AutoFilter currentFiltRange = .Range.Address With .Filters ReDim filterArray(1 To .Count, 1 To 3) For f = 1 To .Count With .Item(f) If .On Then filterArray(f, 1) = .Criteria1 If .Operator Then filterArray(f, 2) = .Operator filterArray(f, 3) = .Criteria2 End If End If End With Next End With End With w.AutoFilterMode = False w.Range("A1").AutoFilter field:=1, Criteria1:="S" End Sub 

在MSDN上find的代码

[编辑]你也可以在这个线程中find一些有价值的信息: 用filter重新排列Excel表格列完整性 (看评论)

如果在date字段的filter中使用树视图,则无法确定其标准。 这就是为什么你需要一个临时的自定义视图重新应用filter。 看到这个职位 。