• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA 二回目の処理でエラーが。。)

エクセルVBAで二回目の処理でエラーが発生する理由と解決方法

このQ&Aのポイント
  • エクセルVBAで二回目の処理を実行する際にエラーが発生しています。特にFind関数が原因となっているようですが、具体的な解決方法が分かりません。
  • エクセルVBAのコードの中で非対象相手先にチェックを付ける作業を行っていますが、二回目の処理でエラーが発生しています。Withステートメントが正しく設定されていないことがエラーの原因と考えられます。
  • エクセルVBAのコードにおいて、二回目の処理でWithステートメントが設定されていないエラーが発生しています。このエラーの解決方法についてはまだ分かっていません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Cells(Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Find(Serc).Row, 36) = 0 1回目に、Findで見つかったセルに0を入れているので、実行2回目はFindで条件に合うセルが見つからない。 Find()はRangeを返すメソッドだけど、条件に合うセルが見つからなかった場合はNothingを返してくる。 Findの戻り値がNothingなのに、Rowプロパティを参照して「オブジェクト変数、又はWithブロック変数...」のエラーが出ている様に見えます。

merrykun2006
質問者

補足

回答ありがとうございます。 ですが、下記で行ってもエラーが出てしまいます。。。 With Sheets("非対象") For Each CRR In .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)  If CRR = TG Then   Serc = .Cells(CRR.Row, 2)   Chacktuke = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Find(Serc).Row Cells(Chacktuke, 36) = 0  End If Next End With 対象となるセルを探し当て、そのセルの36列目に数字の「0」を入れたい のを手間を無くす為にFind使いましたが、大人しくFor Eachで検索をした 方が良いですかね。。。(-_-;)

関連するQ&A

専門家に質問してみよう