[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルターで別シートにある月を指定したい』(りお)
Sheet(2)のオートフィルターで月で絞ってSheet(3)へ書き出したいのですが
変数dt1へ月の開始日をdt2へ月末日を入れるため途中まで下記マクロを書きましたが先に進めません。
条件として開始日は、Sheet(1)のセルA2には「2023/1/1」が入っています。
dt1 = >=Sht2.Cells(2, 1).Value
dt2 = <=DateSerial(Year(dt1), Month(dt1) + 1, 0)
などと指定しましたが抽出は0件になります。
Sub 月データ抽出3()
Dim Sht1 As Worksheet,Sht2 As Worksheet Dim dt1 As String,dt2 As String Set Sht1 = Sheets(2) Set Sht2 = Sheets(1) dt1 = ">=2023/1/1" dt2 = "<=2023/1/31" Sht1.Range("A1").AutoFilter 2, dt1, xlAnd, dt2 Sht1.Range("A1").CurrentRegion.Copy Sheets(3).Range("A1") End Sub どのように変更したら良いか教えてください。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
Sht1.Range("A1").AutoFilter 2, dt1, xlAnd, dt2 ↓ Sht1.Range("A1").AutoFilter 1, dt1, xlAnd, dt2 ではないですか?
(abc) 2023/03/06(月) 11:28:05
実際にdt1、dt2への代入時のコードは? (ねむねむ) 2023/03/06(月) 11:32:05
そもそもそれだと入力時に構文エラーにならないか? (ねむねむ) 2023/03/06(月) 11:55:49
構文エラーになると思います。
提示された最初のマクロ、Sub 月データ抽出3() で ちゃんと動作すると思いますよ。
下記なのであってると思いますが Sht1.Range("A1").AutoFilter 2, ">=2023/1/1", xlAnd, "<=2023/1/31"
もしかして...日付けの前に半角スペースなどが入ってませんか? シート1 A2と、シート2の2列目を確認してみてください。
違ったら、すいません。 (あみな) 2023/03/06(月) 17:16:28
dt1 = Sht2.Cells(2, 1).Value dt2 = DateSerial(Year(dt1), Month(dt1) + 1, 0)
'フィルターでデータ抽出 Sht1.Range("A1").CurrentRegion.AutoFilter _ Field:=2, _ Criteria1:=">=" & dt1, Criteria2:="<=" & dt2, Operator:=xlAnd
これでできました。
(りお) 2023/03/07(火) 14:18:53
>ねむねむさん dt1、dt2への代入時のコードは、 >dt1 = >=Sht2.Cells(2, 1).Value >dt2 = <=DateSerial(Year(dt1), Month(dt1) + 1, 0) >としてみましたが、抽出件数は0件でした。
これ実際は dt1 = ">=Sht2.Cells(2, 1).Value" dt2 = "<=DateSerial(Year(dt1), Month(dt1) + 1, 0)" としてたのかね。
だったら dt1 = ">=" & Sht2.Cells(2, 1).Value dt2 = "<=" & DateSerial(Year(dt1), Month(dt1) + 1, 0) でも、ってことになるが。 (ねむねむ) 2023/03/07(火) 14:25:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.