When you have 1 or 2 criteria selected then you can simply retrieve them like this
Option Explicit
Sub sample()
Dim rRange As Range
Dim iFiltCrit As Long
'Remove any filters
ActiveSheet.AutoFilterMode = False
Set rRange = Range("A1:B8")
With rRange
.AutoFilter Field:=1, Criteria1:="=1"
Debug.Print Sheet1.AutoFilter.Filters(1).Criteria1
End With
'Remove any filters
ActiveSheet.AutoFilterMode = False
End Sub
When you have more than 2 criteria then you can loop as you mentioned as they are stored in an array.
The problem is when the filter is inactive i.e You can see everything then all the criteria is cleared off from memory. See this example. I am using ActiveSheet.ShowAllData to show all the data.
Option Explicit
Sub sample()
Dim rRange As Range
'Remove any filters
ActiveSheet.AutoFilterMode = False
Set rRange = Range("A1:B8")
With rRange
.AutoFilter Field:=1, Criteria1:="=1"
Debug.Print ">"; Sheet1.AutoFilter.Filters(1).Criteria1
'~~> Show all data
ActiveSheet.ShowAllData
Debug.Print ">>"; Sheet1.AutoFilter.Filters(1).Criteria1
End With
'Remove any filters
ActiveSheet.AutoFilterMode = False
End Sub
SNAPSHOT

So I believe that you cannot retrieve that information any more once you show all the data.