2011-09-06 77 views

回答

3

我認爲最簡單的方法是刪除自動過濾和感謝重新將其應用到這種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 

代碼發現on MSDN

[編輯]您還可以找到在此線程一些有價值的信息:Reordering Excel Table Columns with Filters Intact(看評論)

0

當樹視圖在一個日期字段,然後其標準不能確定的過濾器使用。這就是爲什麼您需要臨時自定義視圖來重新應用過濾器。見this post

相關問題