|
▼プルート さん:
>▼ゼロイオン さん:
>>for x = 1 to シート数
>>on error resume next
>>行 = Worksheets(1).Cells.Find("シート名", , xlValues, , , xlPrevious).Row
>>on error goto 0
>>
>>Workbooks("ブック.xls").Worksheets(2).Cells(行, 256).End(xlToLeft).Offset(, 1).Value = 時間 '時間
>>Workbooks("ブック.xls").Worksheets(2).Cells(行, 256).End(xlToLeft).Offset(, 1).Value = 野菜値段 * 魚値段 '金額
>>Workbooks("ブック.xls").Worksheets(2).Cells(行, 256).End(xlToLeft).Offset(, 1).Value = 持ち金 - 購入金額 'おつり
>>
>>next x
>>
>>あらたに問題が発生しました。
>>on errorをやったあとに下のコードを実行しています。
>>しかし、このコードforで繰り返しているのですが
>>これを実行すると行に入る値がエラーの場合、回避できるところまでいいのですが、
>>エラーになる前に割り出した行の値が残っているので
>>on error goto 0
>>から下のコードを実行して、同じ行の後ろに割り出してしまうので
>>間違った結果になってしまいます。
>>
>>そこでエラーが出た場合、on error goto 0から下のコードを
>>ぶっ飛ばして次のforのstepにいくにはどうしたいいのでしょうか?
>>ちなにみ、要点以外他の部分は割愛させてもらってます
>
>On Error Resume Next と
>On Error Goto 0
>の意味を理解して使われていますか?
>
>On Error Resume Nextは、エラーが発生しても無視して次の行に行っちゃいなさいって意味。
>On Error Goto 0は、On Error Resume Nextで無視したことを解除しなさい。って意味。
>
>だから、エラーが発生しても無視して次の行にいきたいのなら、On Error Goto 0を生かしておけばいいわけですよね。
On Error Resume Nextを生かしておけばいいわけでした・・・ゴメンなさい
>On Error Resume Nextを消すか、Next xの前に書けばいいと思いますが。
|
|