[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA オートフィルターの「除外」の記述』(たけたけ)
いつも勉強させていただいております。 VBAのオートフィルターについて教えてください。
オートフィルターを使って、 2023年1月のもののみを抽出するには以下でできました。 dt="1/31/2023" ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(1, dt)
では、2023年1月以外のものを抽出する場合は、以下はどのように記述すればよいでしょうか? ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, Operator:=xlFilterValues, ・・・・・
ご教授の程よろしくお願いいたします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
>2023年1月以外のものを抽出する場合
これをマクロ記録すれば良いんでない (ベルファスト) 2023/03/03(金) 15:31:10
マクロ記録したら2023年1月以外を全て選択する記述になるので、これを避ける記述がしたいので。
(たけたけ) 2023/03/03(金) 15:45:23
(たけたけ) 2023/03/03(金) 15:51:06
簡単に言うと、2023年1月以外のものを抽出する記述を、変数 dt を使って記述したいということです。
(たけたけ) 2023/03/03(金) 15:56:59
dt1="2023/1/1" dt2="2023/1/31" ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, _ Criteria1:= "<"&dt1, Operator:=xlOr, Criteria2:=">"&dt2 ではどうだろうか? (ねむねむ) 2023/03/03(金) 16:05:54
ねむねむさん
数式のご提示有難うございます。 うまく抽出されましたが、こういったやり方しかないのでしょうか? 除外なので、"<>" を使ってできないものかと思ってました。 "<>" を使う記述ができないのであれば、諦めてご提示していただいた記述にしますが。
(たけたけ) 2023/03/03(金) 16:29:33
とりあえず https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.autofilter でそういうパラメータの与え方ができるか確認してみてはどうだろうか? (ねむねむ) 2023/03/03(金) 16:51:02
フィルターしたあと、そのデータをどうするのでしょう
オートフィルタで表示させてマクロ終了 ということなら分かりますが、 もし、VBAでフィルタ後の処理があるなら、オートフィルタよりもっといい方法があるような気がします (´・ω・`) 2023/03/03(金) 17:38:01
作業列に数式で期間内か期間外を判定するという手間をかけるなら、ねむねむさんの数式で十分な気がします。申し訳ないです。
´・ω・`さん
フィルターした後、表示されたデータを削除、そこからゴソゴソと諸々の処理が待ってます。
(たけたけ) 2023/03/03(金) 17:56:19
でしたら、バワークエリーがおすすめです またはフィルタの詳細設定(アドバンストフィルタ)で抽出してから 抽出データに対して処理するのがいいとおもいます (´・ω・`) 2023/03/03(金) 18:01:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.