|
▼にしもり さん:
こんにちは。
>どうにか下記のロジックを作って使っています。
>
> Range("A10689").Select
> ActiveCell.FormulaR1C1 = "名前1"
>
> Range("A10690").Select
> ActiveCell.FormulaR1C1 = "=""トム"""
>
> Range("B10689").Select
> ActiveCell.FormulaR1C1 = "名前2"
>
> Range("B10691").Select
> ActiveCell.FormulaR1C1 = "=""トム"""
>
> Range("A1").Select
> Range(Selection, Selection.End(xlToRight)).Select
> Range(Selection, Selection.End(xlDown)).Select
>
> With Selection
> .AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
> Range("A10689:B10691"), Unique:=False
> End With
条件範囲は A列とかでなくて シートの右のほうの空いている列に書くのが
ふつうです。
また、抽出範囲は [A1]セルの表領域のようなので、Select、Selection を使わず
CurrentRegionプロパティを使って表せます。
>全然フィルターが機能しません。
>条件は2つまでなのですか?
いいえ、いくつでも可能です。だから 「Advanced」フィルタなのです(^^
書き方がちょっと適切ではないのでは?
たとえば、
その「名前1」「名前2」「名前3」の列が仮に D列、J列、L列のことだとしますと
条件 Criteria は こんな風に書けます。
Sub Try2()
With Range("AA1")
.CurrentRegion.ClearContents
.Range("A1").Formula = "=D1"
.Range("B1").Formula = "=J1"
.Range("C1").Formula = "=L1"
.Range("A2,B3,C4").Value = "'=トム" 'ダブルクォートを使わない
End With
Range("A1").CurrentRegion.AdvancedFilter _
xlFilterInPlace, _
CriteriaRange:=Range("AA1").CurrentRegion
End Sub
|
|