Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11938 / 13646 ツリー ←次へ | 前へ→

【12913】AutoFilterについて liee_chang 04/4/19(月) 16:34 質問
【12914】Re:AutoFilterについて IROC 04/4/19(月) 16:37 回答
【12921】Re:AutoFilterについて liee_chang 04/4/19(月) 19:32 質問
【12935】Re:AutoFilterについて IROC 04/4/19(月) 21:50 回答
【13184】Re:AutoFilterについて liee_chang 04/4/26(月) 16:52 お礼[未読]
【13203】Re:AutoFilterについて liee_chang 04/4/27(火) 16:24 質問[未読]

【12913】AutoFilterについて
質問  liee_chang  - 04/4/19(月) 16:34 -

引用なし
パスワード
   こんにちは。

AUtoFilterについて教えて下さい。
ヘルプ等でも見たのですが
Worksheets("Sheet1").Range("A1").AutoFilter _
  field:=1, _
  criteria1:="東京"
  VisibleDropDown:=False

criteria1:="東京"
↑は文字列でなくて、日付指定はできるのでしょうか。
日付を抽出条件にしたい場合は
AutoFilterじゃ無いほうがよいのでしょうか?

どなたかご教示ください。

【12914】Re:AutoFilterについて
回答  IROC  - 04/4/19(月) 16:37 -

引用なし
パスワード
   シート上の対象が、日付型の場合(セル値がシリアル値)、
検索キーワードも日付型にすればできると思います。


dim myDate as string
Dim myKey as date

myDate = "2004/4/1"

myKey = cdate(myDate)

criteria1:=myKey

【12921】Re:AutoFilterについて
質問  liee_chang  - 04/4/19(月) 19:32 -

引用なし
パスワード
   ▼IROC さん:
ありがとうございます。
教えていただいた方法でできました。

そこでご存知でしたら再度教えて下さい。

定義をmykey1=MONにして、2=TUEと増やしていきます。
変数rにその1〜5まで入れてコピペを繰り返す、という記述をしたいです。
自分的には下記の通り考えたんですが、
どうにも
>Criteria1:=myKey(r)
ここがわかりません。


Sub IDO()

Dim MON As String
Dim myKey As Date
Dim sche As Range
Dim r As Long

MON = "2004/1/6"
TUE = "2004/1/7"

Set sche = Sheets("sheet1").Range("A2:D65536")
myKey1 = CDate(MON)

r = 1

For r = 1 To 5

 sche.AutoFilter Field:=1, Criteria1:=myKey(r)
 sche.SpecialCells(xlCellTypeVisible).Copy
 Sheets("Sheet2").Range("C5").PasteSpecial 'Paste:=xlValues
  
 r = r + 1
  
Next

End Sub

【12935】Re:AutoFilterについて
回答  IROC  - 04/4/19(月) 21:50 -

引用なし
パスワード
    ちょっと何をしたいか読み取れませんが、
日付を+1(加算)するなら、日付型で処理しては如何でしょうか?


Sub IDO()

Dim MON As String
Dim myKey As Date
Dim sche As Range
Dim r As Long

MON = "2004/1/6"

Set sche = Sheets("sheet1").Range("A2:D65536")

myKey1 = CDate(MON)

For r = 1 To 5
 sche.AutoFilter Field:=1, Criteria1:=cdate(myKey1 + r -1)
 sche.SpecialCells(xlCellTypeVisible).Copy
 Sheets("Sheet2").Range("C5").PasteSpecial Paste:=xlValues  
Next

End Sub


【13184】Re:AutoFilterについて
お礼  liee_chang  - 04/4/26(月) 16:52 -

引用なし
パスワード
   ▼IROC さん:

ありがとうございます。
返信が大変遅くなってしまいましたが、日付型でやりたかったことが出来ました。

【13203】Re:AutoFilterについて
質問  liee_chang  - 04/4/27(火) 16:24 -

引用なし
パスワード
   度々すみません、やはりわからなくなってしまったので
アドバイスをください。

>MON = "2004/1/6"
>
>Set sche = Sheets("sheet1").Range("A2:D65536")
>
>myKey1 = CDate(MON)
>
>For r = 1 To 5
> sche.AutoFilter Field:=1, Criteria1:=cdate(myKey1 + r -1)
> sche.SpecialCells(xlCellTypeVisible).Copy
> Sheets("Sheet2").Range("C5").PasteSpecial Paste:=xlValues  
>Next
>
>End Sub

やりたいことは、2004/1/6のデータのみコピペしたいんです。
でも、上記だと
2004/1/6のデータと、scheで範囲指定した内の日付が入っていない空白セル部分も
コピーされてしまいます。
そこで

>Criteria1:=CDate(myKey + r - 1), Criteria2:="<>"

と条件を追加したらいいのでは・・?と思ったんですが
出来ませんでした。

教えていただけますか?

11938 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free