- 締切済み
マクロでテーブルの日時のオートフィルターの制御
テーブルには「1~6時」、「1日中」、「6~8時,21~22時」などいろいろな時間が書いてあるセルがあります。このテーブルにマクロを使って「1時」「2時」...「24時」などのボタンを24個作りオートフィルターの絞り込みをしようとしています。 このままでは使いづらいので検索列というものを作り、「1時,2時,3時,4時,5時,6時」、「1日中」、「6時,7時,8時,21時,22時」と入力しました。 とりあえず「1時」の絞り込みのマクロを作りました。 Option Explicit Sub One_Oclock() With ActiveSheet.ListObjects(1) .Range.AutoFilter .ListColumns("検索列").Index, _ "1時*", xlOr, "1日中" End With End Sub 1時はセルの頭にくるのでこれで11時や21時を除外することはできましたが逆に「1時」のみのセルは除外されてしまいました。 また2時の場合は「"*2時*"」、「"*2時"」「"2時*"」「"1日中"」となりやはりうまくいきません。どうすればいいですか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 「2時」のみのセルが除外されてしまいます。 検索列のセルだと思いますから検索に都合のいいように「,2時」としておくといいと思います。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 1時が含まれるセルは1時が先頭になるため、「1時,2時,...」のような場合に除外されてしまいます。 「1時,2時,3時,4時,5時,6時」というのはこれがセットでひとつのセルに入っているのでしたか 個別に入っていると思ってました。 "*,2時*" にしてみたらいかがでしょう。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 検索列というものを作り、「1時,2時,3時,4時,5時,6時」 でしたから、検索列でフィルターしていますので 「"2時*"」は「"2時"」でいいと思います。 同じように "1時*"も "1時"で
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 2時絞り込みでは12時や22時が含まれてしまうのですがどうすればいいですか? 「"*2時*"」、「"*2時"」 だと 「12時」や「22時」それに「まだ12時」とか「22時だよ」も含まれると思いますから 1時と同じように 「"2時*"」「"1日中"」 にして試してみてください。
補足
試してみましたが、「"2時*"」「"1日中"」にすると 1時が含まれるセルは1時が先頭になるため、「1時,2時,...」のような場合に除外されてしまいます。どうすればいいですか。
- kkkkkm
- ベストアンサー率66% (1719/2589)
お礼
1日中のセルを入力し直すとうまくいきました。ありがとうございました。
補足
試してみましたが、「2時」のみのセルが除外されてしまいます。