プロが教えるわが家の防犯対策術!

sheet1からsheet2に転記するにあたっての質問です。
sheet1の数値を使ってuとzを計算し、それをsheet2に出力したいのですが

「アプリケーション定義またはオブジェクト定義のエラーです」

というエラーが出てしまいます。現在のコードは以下になります。
どのように直せば良いのか教えて下さい。

Worksheets("Sheet2").Cells(n, j + 1).Value = u
Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z

A 回答 (3件)

No.1です。


後はuとzが怪しい事になりますが、とりあえず、
>Worksheets("Sheet2").Cells(n, j + 1).Value = u

On Error Resume Next
Worksheets("Sheet2").Cells(n, j + 1).Value = u
If Err.Number <> 0 Then
DoEvents
End If
On Error GoTo 0
としてDoEventsの所にブレークポイントを入れて、ここに来た時(エラーが発生した時)の、n、j + 1、Worksheets("Sheet2").Cells(n, j + 1).Value、uの値を順に調べてみてください。
どれかがエラーになっているはずです。
また
>Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
も同様に調べてみてください。
    • good
    • 0
この回答へのお礼

hotosysさん
回答ありがとうございます。
調べてみたところ
u=0
z=0
となっていましたが、sheet2には
4098.34864786929や
-5235.01068699772など、
計算された数値(正しい数値でした)が入力されていました。
エラー表示されるのに正しい数値が出力される場合、放置しておいてもいいのでしょうか?

何度も申し訳ありませんが、ご回答宜しくお願い致します。

お礼日時:2009/01/02 22:54

>「アプリケーション定義またはオブジェクト定義のエラーです」


>現在のコードは以下になります
>Worksheets("Sheet2").Cells(n, j + 1).Value = u
>Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z

当然ながらコードはこの2行だけではないですよね。(^^;;;
n,n+1,j+1の値が0以下またはシート最大行超でないなら
エラーはここではなく別のところにあるはずです。

それは、
>計算された数値(正しい数値でした)が入力されていました
この文言からも推察できます。

で、以下のことをしてください。

このエラーダイアログに「デバッグ」ボタンがあると思いますが
それをクリックするとエラーコードの箇所に色が付きますので
その部分に変数があったらその上にマウス持っていくと、
その変数の値が表示されますのでそれが正しい値か確認してください。

また、そのコードを提示してください。


>エラー表示されるのに正しい数値が出力される場合、放置しておいてもいいのでしょうか?

いくらなんでもこれは拙いでしょう。(^^;;;;

以上。
 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

変数の値を調べてみたところ、
excelに出力する際に、列番号が256のときにエラーになっていることがわかりました。
ですので、行と列を逆にして出力したら解決しました。
ありがとうございました!

お礼日時:2009/01/04 13:09

セルの指定で行または列が0またはマイナスになると質問のエラーになります。



つまり
Worksheets("Sheet2").Cells(n, j + 1).Value = u
のnまたはj+1が0またはマイナスになっている場合、この行が質問のエラーになるので、1以上になるようにする。
Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
のn+1またはj+1が0またはマイナスになっている場合、この行が質問のエラーになるので、1以上になるようにする。
    • good
    • 0
この回答へのお礼

早急な回答ありがとうございます。
しかし、ステップインで確認してみましたところどちらの最低値も
n=4
j=1
のように、1以上の自然数でした。
他に考えられる原因があれば回答をお願い致します。
何度も申し訳ありません。

お礼日時:2009/01/02 21:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!