Я думаю, что самый простой способ - удалить автофильтр и повторно применить его благодаря этому виду 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
[РЕДАКТИРОВАТЬ] Вы также можете найти некоторую ценную информацию в этой теме: Изменение порядка столбцов таблицы Excel с неповрежденными фильтрами (см. Комментарии)