|
>条件範囲を指定(「氏名」、「機関」、「科目」の3列)を
>変更する時と
>
>抽出範囲を変更する時はどのようにしたらよろしいのでしょうか?
変更する部分は、
'◆抽出範囲を指定
Set rngExtract = Worksheets("Sheet1") _
.Cells(5, "B").Resize(, clngColumns)
'◆条件範囲を指定(「氏名」、「機関」、「科目」の3列)
Set rngCriteria = rngList.Parent.Cells(1, "B").Resize(2, 3)
の2行です
詳しくは、Helpのフィルタオプション(AdvancedFilter)を見れば解ると思いますが?
「抽出範囲」は、抽出させるSheetの抽出させる列の列見出しの範囲を言います
詰まり、現状のコードでは、B5:H5の範囲と成っています
AdvancedFilterでは、必ず全ての列を元のListと同じ順番で抽出させる必要は無いので
例えば、Sheet2のD6:F6に、「氏名」、「日付」、「症状」を抽出したい場合
Sheet2を
D E F
06 氏名 日付 症状
として、コードを
'◆抽出範囲を指定
Set rngExtract = Worksheets("Sheet2") _
.Cells(6, "D").Resize(, 3)
とします
また、「条件範囲」も必要な列見出しとその下の条件だけを指定すれば良く
例として、Sheet2のE、F、G、H列の5行目に「氏名」、「機関」、「症状」、「科目」
を抽出条件として置くならば
Sheet2を
E F G H
05 氏名 機関 症状 科目
06 ="=加藤" * * *
と設定して
'◆条件範囲を指定(「氏名」、「機関」、「症状」、「科目」の2行4列)
Set rngCriteria = Worksheets("Sheet2").Cells(5, "E").Resize(2, 4)
とします
尚、解ると思いますが、.Resizeとは、その前の範囲を変更するRangeのプロパティです
詳しくはHelpを見て下さい
また、Upしたコードの「rngList.Parent」とは、
rngListの親(詰まり、レンジの親なのでSheet)を指します
今回の場合、rngListは、抽出元の先頭列見出しなので、
その親は、WorkSheets("リスト")と成ります
|
|