シート2の1行目はシート3の列名と等しくなっているはず
シート2の列名の下にフィルタ条件が書かれる
コードを実行すると
シート3の表にフィルタが掛けられる
その条件はシート2に書いた列でその下の値を持つ行だけが表示される

.SpecialCells(xlCellTypeVisible).Clear
をしているから、フィルタを掛けた後表示されているセルはクリアされる

その後、showallしてるからフィルタがクリアされる

結果として、フィルタ条件に合わなかった行が残る