|
業務で「発注管理台帳」というものを毎月作っています。
今までは、手作業で作成していましたが、このたび、VBAで自動化しようという話になりまして、
VBA初心者の私が、コードを組むことになってしまいました。
この「発注管理台帳」ですが、社内DBに保存されているデータ(約10000件)を
Excelに落としたものを元データとしています。
この元データを台帳に加工する前に、以下の条件に当てはまるデータを削除しなければなりません。
1.列B「注文処理状況」において、「処理済」と入力されている行を削除。
2.列F「納期」(セルの書式:yyyy/mm/dd)が検収月以外で、列H「注文数量」が「1」の行を削除。
たとえば、「検収月」が2004年9月なら、「納期」が「2004/10/01」で「注文数量」が「1」の行は削除。
「納期」が「2004/10/01」で「注文数量」が「2」の行は削除しない。
なお、「検収月」は9月、10月・・というように1ヶ月単位で変わります。
Excelに落としてきた元データの数も、毎月変わります。
条件1.については、以下のような記述でできました。
Sub 条件1に当てはまるデータ削除()
Dim i As Long
For i = Range("B65536").End(xlUp).Row To 2 Step -1
If Cells(i, 2).Text = "処理済" Then
Rows(i).Delete
End If
Next i
End Sub
しかし、条件2.のところでつまづいてしまいました。
「検収月」は毎月変わりますので「検収月を入力してください」という入力フォームを表示してユーザーに入力を促そうと考えていますが、
条件設定になると、完全にお手上げです。
どなたか、お知恵をいただけませんでしょうか?
よろしくお願いいたします。
|
|