|
フィルターオプションではなく、
オートフィルターでやったのですね?
もう見てないかもしれませんが、私なりに直してみました。
SelectやActivateは出来るだけ使わない方がよろしいかと。
Sub Test1()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("List") 'リスト
Set sh2 = Worksheets("List2") '条件登録、結果表示
Dim KeyA1 As Single '条件1(min)
Dim KeyA2 As Single '条件1(max)
Dim keyB1 As Single '条件2(min)
Dim KeyB2 As Single '条件2(max)
KeyA1 = sh2.Cells(2, 2).Value
KeyA2 = sh2.Cells(2, 3).Value
keyB1 = sh2.Cells(3, 2).Value
KeyB2 = sh2.Cells(3, 3).Value
'先回の結果をクリア (結果表示先List2シートA5:D20)
sh2.Range(sh2.Cells(5, 1), sh2.Cells(20, 4)).ClearContents
'オートフィルターで条件1、条件2を抽出
With sh1
'条件1
.Cells(1, 1).AutoFilter Field:=1, Criteria1:=">=" & KeyA1, Operator:=xlAnd, _
Criteria2:="<=" & KeyA2
'条件2
.Cells(1, 1).AutoFilter Field:=2, Criteria1:=">=" & keyB1, Operator:=xlAnd, _
Criteria2:="<=" & KeyB2
'抽出結果をコピーして結果表示場所に貼付け
.AutoFilter.Range.Copy sh2.Cells(5, 1)
.AutoFilterMode = False
End With
End Sub
|
|