- ベストアンサー
検索でのエラー回避について
- まとまったデータがあるところから検索したい月及び各項目のデータを検索し、項目シート事に抽出するという作業を行なっています。しかし、6月にはデータはあるが、5月にはデータはないため、次の検索ができなくなってしまいます。このエラーの回避方法について教えてください。
- データの検索作業において、6月のデータはありますが、5月のデータがないため次の検索ができません。どうすればこのエラーを回避できるでしょうか?ご教示いただけますと幸いです。
- データの検索作業において、6月にはデータがあるが、5月にはデータがないため、次の検索ができなくなってしまいます。この問題を解決する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
提示のコードでエラーが出るとしたら >If Sheets("東京").Range("A2") = Sheets("日報").Cells(R, "A") And _ >Sheets("東京").Range("B2") = Month(Sheets("日報").Cells(R, "C")) Then このMonth(Sheets("日報").Cells(R, "C"))の部分。 このセルの値が日付ではなくて文字列だった場合にはエラーがでます。 但し、質問の文言からはデータがあれば(6月は)上手くいくと受け取れますから この部分のエラーではないと判断できます。 恐らくエラー部分は質問で省略された部分(罫線やCopyのコード)にあるのでしょう。 もし、罫線コードがマクロ記録の範囲指定部分のみを修正したものであれば 質問の状況では当然ながらエラーが出ます。 で、エラー回避の1番簡単な方法は? 該当データがなかったらその時点で処理を終了させるということです。 これは以下の▲の部分に、1行追加するだけです。 '------------------------------------------------- ●抽出結果を日付で並べ替え If Row2 = 5 Then MsgBox "該当データなし!" Exit Sub '▲▲これを入れる Else '------------------------------------------------------- うんにゃ、あくまでも罫線のコードを修正したい、ということであれば 現在の罫線のコードを全て削除して、以下のコードと入れ替えてください。 '------------------------------------------------------ With Sheets("東京").Range("A5:F" & Row2).Borders .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With '------------------------------------------------- SORT以降のコードには(たぶん省略されてる部分にも) おかしくはないが修正した方がいい部分がありますが、 ま、今回は、動作することが先決ということで。。。 以上です。
その他の回答 (3)
- layy
- ベストアンサー率23% (292/1222)
こういう質問が出るということは、誰かが作ったプログラムですか?、質問者自身が理解したものになってないと想定されますが。 5月を検索してー、 抽出なければ続けて6月で検索、とする とか、 検索して必ず見つかる月だけに事前絞り込みしておいてコンボボックスにて選んだら実際に抽出する、 とか コードにできなくても何かイメージしていることがあると思います。設計案はないですか。
お礼
回答有難うございます。 ネットで拾ったり教えていただいたりしました。 一番最後にEnd Ifをもっていったら上手くいきました。 有難う御座います。
- moto_koukousei
- ベストアンサー率54% (331/606)
この質問は、次の質問と同じですか? ' http://okwave.jp/qa/q6000620.html この状況をもう少し具体的に説明してください。 ' 検索対象の[日報]シート上に、6月にはデータはあるが、5月のデータはない。 ' この場合に、[東京]シートのB2に (どうすると) ’ どのようなエラーメッセージ表示されて ’ そうすると以下のコードの度どの部分で止まっているのか。 ’ [次の検索が出来ません。]というのは、一旦エラーを起こすと、 ’ その後で、マクロを止めて、再度マクロを起動させた場合にも、 ' [東京]シートのB2に (どうすると)検索できないのか なお、コードの終わりの方にある次の部分は、必要ではないか、or シートを作った最初にやれば、その後ではやらなくて良いような気がします。 Sheets("東京").Select Range("B5:B200").Select Selection.NumberFormatLocal = "yyyy/m/d" Rows("5:5").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .MergeCells = False End With
お礼
回答有難う御座います。 >そうすると以下のコードの度どの部分で止まっているのか。 該当しません。のところでとまってしまうんです。 EndIfを最後にもっていったら上手く出来ました。 有難う御座います。
- nattocurry
- ベストアンサー率31% (587/1853)
シートのレイアウトが判らない上に、どのコードでどんなエラーになるのかも判らないのでは、何が原因でどう直せば良いのかを突き止めるのはかなり難しいですね。 試しにちょっとやってみましたが、質問者様が言うようなエラーを出せませんでした。
お礼
回答有難う御座います。 データ上に検索月の東京のデータがないときにデバックしてしまいました。 EndIfを最後にもっていったら上手くいきました。 有難う御座います。
お礼
回答有難う御座います。 入れ替えてみます! 初心者なのでネットで拾ったりとしていたので多少へんです。 上記のコードを入れ替えてみたいと思います。 有難う御座います。