AutoFilterの抽出条件に配列が使用できるとの事で、試してみた際にハマったので・・・
こんなデータを用意。

まずは、1件抽出するコード。こんな感じ?
Public Sub doAutoFilter() Dim r As Range Set r = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion r.AutoFilter Field:=1, Criteria1:=3 End Sub
実行してみる。

3が抽出されている。問題ない。
では、3件抽出してみる。
Public Sub doAutoFilter2() Dim r As Range Set r = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion r.AutoFilter Field:=1, Criteria1:=Array(2, 4, 6), Operator:=xlFilterValues End Sub
実行。

?1件も抽出されない。
「マクロの記録」で同じことをやってみる。

Sub Macro1() ' ' Macro1 Macro ' ' Range("A1:A21").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$A$21").AutoFilter Field:=1, Criteria1:=Array("2", _ "4", "6"), Operator:=xlFilterValues End Sub
???抽出するデータが数値なのに、Arrayの中身が文字列になっている!!!
じゃあ、こう?
Public Sub doAutoFilter2() Dim r As Range Set r = ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion ' r.AutoFilter Field:=1, Criteria1:=Array(2, 4, 6), Operator:=xlFilterValues r.AutoFilter Field:=1, Criteria1:=Array("2", "4", "6"), Operator:=xlFilterValues End Sub

大丈夫そう。
セルのデータの型に関係なく、Arrayの中身は、文字列でないと駄目らしい・・・
ということは、セルの書式が変わると抽出されないのでは?
セルの表示を小数第1位まで表示させたら・・・


やっぱり抽出されません。 orz
勘弁して下さい・・・
やっぱり日付でも・・・