秘密基地、どこに作った?

いつもありがとうございます。エクセル2003でVBAのマクロを組もうとしてしています。
今日の日付と入金予定日を参照して期限オーバーしている行を収集しようとしています。
Sheet1

    A    B    C     D   (列)
1   売上日  顧客名  商品名  入金予定日
2 平成22年1月4日 A商店  ○○  平成22年2月10日
3 平成22年1月4日 B商店 ○○ 平成22年2月15日






Sheet2
任意のセル(D3)に =NOW()で表示させています。


オートフィルターで今日の日付を入力し収集すれば、いいところですがVBAでオートフィルターをコントロールをしたいと考えております。よろしくお願いします

A 回答 (1件)

セルのD2にシート1のデータ行数を入れておくとすると、次のマクロでご希望の処理が出来そうです。

お試しをお願いします。


Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2010/2/22 ユーザー名 :
'

'
Dim mydate As Date, mygyoa As Integer, mygyob As Integer, gyosu As Integer

mygyob = 4

Sheets("Sheet2").Select
mydate = Cells(3, 4)
gyosu = Cells(2, 4)
mygyob = 5
For mygyoa = 2 To gyosu
Sheets("Sheet1").Select

If Sheets("sheet1").Cells(mygyoa, 5) < mydate Then
'MsgBox "yes"
Range(Cells(mygyoa, 1), Cells(mygyoa, 5)).Select
Selection.Copy
Sheets("Sheet2").Select
Range(Cells(mygyob, 1), Cells(mygyob, 5)).Select
ActiveSheet.Paste
mygyob = mygyob + 1
Else
' MsgBox "no"
End If
Next
End Sub

この回答への補足

早速のご回答、誠にありがとうございます。せっかく記述いただいたコードですが標準モジュールに貼り付けて実行しても、何も起こりませんでした。記述の理解が出来ていないせいもありますが、動作するとどのようになるのでしょうか?質問の内容があいまいで申し訳ありません。今日の日付と比較して経過してたら、その日付だけをリスト表示する。オートフィルターを手動で行えば、オプションで今日の日付を入力して【少ない】を選択して表示させるのような具合です。よろしくお願いします。

補足日時:2010/02/23 18:55
    • good
    • 0

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


おすすめ情報