AutoFilterMode will be True if engaged, regardless of whether there is actually a filter applied to a specific column or not. When this happens, ActiveSheet.ShowAllData
will still run, throwing an error (because there is no actual filtering).
I had the same issue and got it working with
If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
This seems to prevent ShowAllData from running when there is no actual filter applied but with AutoFilterMode turned on.
The second catch Or ActiveSheet.FilterMode
should catch advanced filters