|
▼ののか さん:
>複数シートのC列に検索値AAでフィルタをかけるってどうすればいいですか?
>複数のシートを選択してオートフィルターかけれませんが・・・。
言葉足らずでしたが、もちろん複数シートに<一括で>フィルタをかける
ということではありません。
対象シート(「2004」〜「2010」)をループして順にフィルタをかけ、
抽出行を「AA」シートに転記していく、という意味です。
'--------------------- 標準モジュール
Option Explicit
Sub AAの抽出転記_AutoFilter()
dim AAsheet as worksheet
dim ws as worksheet
set AAsheet = ActiveWorkbook.Worksheets("AA")'転記先シート
For Each ws in ActiveWorkbook.Worksheets
if isnumeric(ws.Name) then
with ws.cells(1).currentregion
.Autofilter 3, "AA"
if .Columns(1).SpecialCells(xlVisible).Count>1 then
.Copy AAsheet.cells(rows.count,1).end(xlUp).offset(1)
end if
.Autofilter
end with
end if
next
End Sub
>AdvancedFilterってなんですか?
メニュー[データ]-[フィルタ]のサブメニューに
・ オートフィルタ
・ フィルタオプションの設定
ってありますよね?
後者が AdvancedFilter のことです。
AutoFilter は 対象シート上で条件に合わない行を隠す(非表示にする)
機能なので、別シートへ転記するには元表にフィルタをかけてから
全範囲をCOPYして転記先シートへ送らないといけないですが、
AdvancedFilter(フィルタオプションの設定)機能を使えば、
抽出と転記を同時にやってくれますので、画面がチラついたりする
ことなく処理が早く済みます。
ただ、抽出条件をセルのどこかに書いておかないといけないので、
とりあえずAutoFilterで処理してみて、AutoFilterでできないことはないが
より速く処理したい、という要求が高まってから挑戦してもいいかな?
と思ってました。
#neptune さん、フォローありがとうございます。
|
|