プロが教えるわが家の防犯対策術!

質問タイトルのようにフィルターで翌日を選んで転記したいです。フィールド3の抽出条件を翌日のDateAdd("m", 1, Date)としても抽出されません。フィールド5として抽出条件を”営業”とすると抽出されるんですが。フィールド3に翌日に予定が無ければ、無記入でかまわないのですが実際にあるのに転記されません。
Private Sub CommandButton8_Click()
ScreenUpdating = False
'フィルター

Set ws = Worksheets(Range("C2") & Range("D2"))
ws.Select
Sheet4.Cells.ClearContents
With ActiveSheet
ws.Range("A2:L2").Select
Selection.AutoFilter


Selection.AutoFilter Field:=3, Criteria1:=DateAdd("m", 1, Date)

.Range("A2").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Sheet4.Range("A1")
.AutoFilterMode = False
End With
Sheet4.Activate


Sheet1.Range("D5").Value = Sheet4.Range("E3") & Sheet4.Range("F3")
Sheet1.Range("D6").Value = Sheet4.Range("C3")
Sheet1.Range("D9").Value = Sheet4.Range("I3")
Sheet1.Range("E9").Value = Sheet4.Range("J3")
'カウント
Sheet1.Range("M3").Value = Application.WorksheetFunction.Count(Sheet4.Range("A1:A10"))

Sheet1.Select
ScreenUpdating = True
End Sub

何が違うんでしょうか?

質問者からの補足コメント

  • 日付フィルターを見つけて手動のマクロ記録でやってみました。
    手動のマクロ記録でやってみました。
    Selection.AutoFilter Field:=3, Criteria1:=3 _
    Operator:=11, Criteria2:=0 , SubField:=0に修正したらできたのですが意味がわかってません。どういう事なのでしょうか?

      補足日時:2021/04/11 23:47
  • 画像を添付いたします。
    日付フィルターで”明日”を選んでいます。ファイルを開くとき特定の日付ではなくその日の”明日”としたいからです。
    これがOperator:=3ということになるのでしょうか?

    「VBA 翌日を選んで可視セルを転記」の補足画像2
      補足日時:2021/04/12 16:27

A 回答 (12件中1~10件)

或いは



Selection.AutoFilter Field:=3, Criteria1:=CStr(DateAdd("d", 1, Date))

でもいけたのかも?
    • good
    • 0
この回答へのお礼

色々お時間作っていただき大変にありがとうございました。
何かと初心者で伝える情報が少なすぎました。色々勉強になりました。

お礼日時:2021/04/13 22:21
    • good
    • 0

http://officetanaka.net/excel/vba/tips/tips151.htm

こちらの下の方に

この「日付フィルタ」で絞り込むときには、引数Criteria1に次の定数を指定し、引数Operatorに定数xlFilterDynamicを指定します。

多分 11 が定数xlFilterDynamic なのでしょうね。
    • good
    • 0

補足を見て。



どうやらそのようですね。
何で翌日を検索条件にしようとしているのにその手段を用いるとか、やりたい事が重複しているだけではないかな?

Selection.AutoFilter Field:=3, Criteria1:=DateAdd("m", 1, Date)



Selection.AutoFilter Field:=3, Criteria1:=3, Operator:=11, Criteria2:=0, SubField:=0

で良かったのでは?
翌日を調べる必要はなかっただけの事。
    • good
    • 0

>Criteria1:=3 は条件が3つ目?Operator:=11 はどういう意味でしょうか?



逆に私が知りたいです。
No.7で記録を取ると

ActiveSheet.Range("$A$2:$D$9").AutoFilter Field:=3, Operator:= _
xlFilterValues, Criteria2:=Array(2, "4/13/2021")

となります。(セル範囲は適当にデータを作ったので気にしないで)
    • good
    • 0
この回答へのお礼

すみません。ありがとうございます。
xlfilterdynamic 定数11 動的フィルターと調べたら出てきました。動的フィルターとはどういう動作をするのかわからないです。

すみません。今日は別件の仕事が入ったのでこれ以降、今日はコメントできません。

お礼日時:2021/04/12 16:42

こちらで試したのは。



・セルの表示は"m"月"d"日
・数式バーには西暦且つ / 区切り
・抽出条件は1つ

でしたね。
なのでそちらで抽出条件が 3 となるのは何なのか不明。
もしかしてMACですか?
うちはWINでMACの経験はないから不明です。
「VBA 翌日を選んで可視セルを転記」の回答画像7
    • good
    • 0
この回答へのお礼

ありがとうございます。私の画像は補足をご覧お願いします。
パソコンはWindows10です。Excelは2016です。私が選択する日が特定の日付ではなく”明日”を選んでいるから抽出条件3となるのでしょうか?

お礼日時:2021/04/12 16:33

正直そちらのbookを直接確認しないとわからない(こちらでは同様の事態が起こせない)感じですね


手動で抽出する際の選択画面を画像にして挙げてもらえればヒントになるのかも?
先にも書きましたが 3 って何のことなのかわからないです
    • good
    • 0

With ActiveSheet


ws.Range("A2:L2").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=DateAdd("m", 1, Date)



With ActiveSheet
ws.Range("A2:L2").AutoFilter Field:=3, Operator:=xlFilterValues, _
Criteria2:=Array(2, Format(DateAdd("d", 1, Date), "m/d/yyyy"))
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指示いただいたもので確かめるとアプリケーションの定義またはオブジェクトの定義エラーとでました。
Operator:=xlFilterValuesを削除するとデバックは消えるのですが、"m/d/yyyy"をmm"月"dd"日"やmm/ddなど色々確かめても転記されず、
Selection.AutoFilter Field:=3, Criteria1:=3 _
Operator:=11, Criteria2:=0 , SubField:=0  だといけるんです。何が違うんでしょうか?

お礼日時:2021/04/12 11:06

補足を見て。



>Selection.AutoFilter Field:=3, Criteria1:=3 _
>Operator:=11

どうして日付を選んでいるはずなのに 3 となったり Operator:=11 ってどの組み合わせをしているのかサッパリですね。
そのフィールドには数式で日付を表し且つシリアル値ではない結果を表示している?

>セルの値がmm"月"dd"日"なのですが、

セルの値がってなら文字列ですよね?
セルの表示形式がってなら多分シリアル値?
どちらがセル(数式バーに表示される)にあるのか。
    • good
    • 0
この回答へのお礼

日付は数式ではなく、04月12日と直接入力しています。数式バーには2021/4/12となっていました。
再度、手動でマクロの記録をしてみました。どうやっても下のものが加わります。
Criteria1:=3 は条件が3つ目?Operator:=11 はどういう意味でしょうか?

お礼日時:2021/04/12 10:37

日付の扱いはややこしい。



Selection.AutoFilter Field:=3, Operator:=xlFilterValues, _
Criteria2:=Array(2, Format(DateAdd("d", 1, Date), "m/d/yyyy"))
    • good
    • 0
この回答へのお礼

日付はうまくいかないんですね。
セルの値がmm"月"dd"日"なのですが、ご指示いただいたものを入力するとアプリケーションの定義またはオブジェクトの定義エラーとでました。
フィルター勉強します。

お礼日時:2021/04/11 22:32

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