非表示行を覚えておいて、復元させるだけです。
(オートフィルタを解除しなければいいだけの話では・・・?)
Sub オートフィルタで絞り込んで解除して非表示状態を復元する処理() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("エクセルシート") If ws.FilterMode Then ws.ShowAllData 'オートフィルタ条件クリア 'オートフィルタ絞り込み条件設定 With ws.Range("A2") .AutoFilter Field:=8, Criteria1:="絞り込み条件1", Operator:=xlAnd, Criteria2:="絞り込み条件2" '.AutoFilter Field:=5, Criteria1:="絞り込み条件3" とかそんな感じで設定 End With '非表示行を変数に格納 Dim iRow As Integer Dim hiddenRows As Range '非表示行格納用 iRow = 3 Do While ws.Range("A" & iRow).Value <> "" If ws.Rows(iRow).Hidden Then If hiddenRows Is Nothing Then Set hiddenRows = ws.Rows(iRow) '1回目 Else Set hiddenRows = Union(hiddenRows, ws.Rows(iRow)) '2回目以降の処理 End If End If iRow = iRow + 1 Loop 'Debug.Print hiddenRows.AddressLocal ws.Range("A2").AutoFilter '引数無しでオートフィルタ解除 ws.Range(hiddenRows.Address).EntireRow.Hidden = True '一括非表示 'hiddenRows.EntireRow.Hidden = True '一括非表示 Set ws = Nothing End Sub