[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA オートフィルタでセルに入力した条件を抽出する』(たろう)
C1セルに入力した日付をVBAで抽出しようとコードを考えたのですが、 C1セルに入力した日付以外も一緒に表示されてしまいます。 何がわるいのか検討もつきません。 どなたかアドバイスお願いします。
Sub 抽出()
Range("A4").AutoFilter Field:=2, Criteria1:=">=" & Format(Range("C1"), "yyyy/mm/dd")
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
> C1セルに入力した日付以外も一緒に表示されてしまいます。 抽出するコードも同じ様にしたらいかがですか?
つまり → Format(Range("C1"), "yyyy/mm/dd")
(本当にそれでいいのかどうか分かりませんけど、それぐらいしか情報がないので・・・)
(半平太) 2014/12/10(水) 13:55
半平太様 ありがとうございます。
情報追記します。
C1セル:2014/1/10
2014/1/1 2014/1/1 2014/1/1 2014/1/1 2014/1/1 2014/1/2 2014/1/1 2014/1/4 2014/1/5 2014/1/6 2014/1/7 2014/1/8 2014/1/9 2014/1/10 2014/1/11 2014/1/12
この状態でマクロを実行すると 2014/1/10 2014/1/11 2014/1/12
C1セルに入力した値以降の日付が全て表示されるようです。 教えて頂いた内容でちょっと試してみます。
(たろう) 2014/12/10(水) 14:33
Sub 抽出()
Range("A4").AutoFilter Field:=2, Criteria1:=Format(Range("C1"), "yyyy/mm/dd") & Format(Range("C1"), "yyyy/mm/dd")
End Sub (たろう) 2014/12/10(水) 14:45
条件2も追加してください。
たしか、たぶん。書き方を忘れた。 こんな感じに。 BJ
Range("A4").AutoFilter Field:=2, Criteria1:=">=" & Format(Range("C1"), "yyyy/mm/dd",Criteria2:="<=" & Format(Range("C1"), "yyyy/mm/dd",))
ああ、第2の方は、日付を1日プラスして、"<" の方が良かったかも。
BJ様 ありがとうございます。条件2も指定するんですね。 やってみます。ありがとうございます。 (もしかして半平太様も同じ意味合いだったのでしょうか?理解できてなくてすみません) (たろう) 2014/12/10(水) 15:33
Dim 日付 As Date
日付 = Range("C1").Value Range("A4").AutoFilter Field:=2, Criteria1:=DateSerial(Year(日付), Month(日付), Day(日付))
みたいな感じでもいいのかな。 A列とC1セルの形式がyyyy/mm/dd形式じゃないのでこだわらなくてもいいかなと思いまして・・・。 (se_9) 2014/12/10(水) 15:37
まだVBAを始めたばかりなので、いろいろ不明な部分がたくさんがありますとりあえずできました!
Range("A4").AutoFilter Field:=2, Criteria1:=">=" & Format(Range("C1"), "yyyy/m/d"),Operator:=xlAnd, _Criteria2:="<=" & Format(Range("C1"), "yyyy/m/d")
(たろう) 2014/12/10(水) 15:42
アドバイスありがとうございます。 一度自分で打ちこんで確認してみます!
(たろう) 2014/12/10(水) 15:44
1.">="は【以上】なので、 1/10以上 と言うと 1/10・1/11・1/12 が当てはまる 同じ値なら "="
2.日付の表示形式に左右されるので、B列に 2014/1/1 と表示されているなら 抽出も "yyyy/m/d" で指定する (HANA) 2014/12/10(水) 15:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.