プロが教える店舗&オフィスのセキュリティ対策術

エクセルのVBAでデータの絞り込みと並び替えを行い
得られたデータを転記したいと考えています。

添付の表で
1.曜日で絞り込み
2.区分で昇順

として、データを転記する予定です。
各曜日についてはforを活用して作業します。

肝心のフィルター部分で

With ThisWorkbook.Worksheets(1).Cells(1, 1)
.AutoFilter Field:=3, Criteria1:="=1"

end With

上記構文にて、単独の月曜まではフィルタできました。
ここから区分でソートする構文について
.AutoFilter.Sort.SortFields.Add Key~となると思いますが、
どのように記載すればよろしいでしょうか?

詳しい方、教えてください。

「エクセルVBA オートフィルタでの絞り込」の質問画像

A 回答 (1件)

こんにちは



>.AutoFilter.Sort.SortFields.Add Key~となると思いますが、
VBAのほとんどのメソッドの戻り値は、booleanだったり無かったりしますので、いわゆる「チェーンメソッド」のような構文での記述はできません。
順次メソッドを記述してください。

同じ様なこと(=フィルタをかけて転記する)を繰り返すのなら、最初に全体をソートしておけば、フィルタをかけるごとにソートしなくてもすむと思います。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。

回答を参考に考えてみたところ、
.Sort key1:=.Columns(5), order1:=xlAscending, Header:=xlYes

こちらで解決できました。

お礼日時:2023/07/08 15:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています