- ベストアンサー
オートフィルタで抽出結果がない場合の処理方法
- excel2003を使用しています。終了日に日付が入ったら別シートにその結果をコピーしたいですが、終了日に日付がまったくない時は、オートフィルタを設定しないか、コピーをしないかにしたいです。
- 複数の表をオートフィルタしてコピーする際に、終了日に日付がまったくない表があると、抽出結果をコピーした表がおかしくなります。
- この問題を解決するためには、終了日に日付がまったくない場合にはオートフィルタを設定せず、コピーをしないようにする必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 説明が不十分かも知れませんが、... 全然足りないと思います。情報を小出しにしないで、マクロのご質問 ならソースコードを提示した方が、回答をもらいやすいですよ(^^; # 状況説明に自信がない場合は特に。 オートフィルターを設定するコードは既にあるんですよね? であれば、ご質問の趣旨は、 最終日の入力チェックを VBA で行うにはどうしたら良いか? ってことであっていますか? 今回はデータの整合性(文字列や数値ではなく、ちゃんと日付が入力 されているかどうか)を確認する必要はなさそうです。 # この辺は入力規則で日付しか入力できないようにするなどの方法 # で対応した方が楽です。 何かが入力されて「いる・いない」だけを判定するロジックの一例を 紹介します。ワークシート関数の CountA を利用した方法です。 【前提】最終日の入力範囲は Sheet1 の C1:C10 とする ・データが全くないかを判定する Dim rngR As Range Set rngR = Sheet("Sheet1").Range("C1:C10") If Application.CountA(rngR) = 0 Then MsgBox "データがないです" Else MsgBox "OK ざんす" End If Set rngR = Nothing ・1件でも入力漏れがあるか判定する Dim rngR As Range Set rngR = Sheet("Sheet1").Range("C1:C10") If Application.CountA(rngR) < rngR.Count Then MsgBox "データが入力されていない箇所があります" Else MsgBox "OK ざんす" End If Set rngR = Nothing
お礼
確かに言葉足らずでした。申し訳ありません。 しかし、KenKen_SPさんのご回答の >・データが全くないかを判定する Dim rngR As Range Set rngR = Sheet("Sheet1").Range("C1:C10") If Application.CountA(rngR) = 0 Then MsgBox "データがないです" Else MsgBox "OK ざんす" End If Set rngR = Nothing を使いましたら、思ったようになりました。 ありがとうございました。感謝いたします。