
sheet1からsheet2に転記するにあたっての質問です。
sheet1の数値を使ってuとzを計算し、それをsheet2に出力したいのですが
「アプリケーション定義またはオブジェクト定義のエラーです」
というエラーが出てしまいます。現在のコードは以下になります。
どのように直せば良いのか教えて下さい。
Worksheets("Sheet2").Cells(n, j + 1).Value = u
Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
No.2ベストアンサー
- 回答日時:
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
も同様に調べてみてください。
hotosysさん
回答ありがとうございます。
調べてみたところ
u=0
z=0
となっていましたが、sheet2には
4098.34864786929や
-5235.01068699772など、
計算された数値(正しい数値でした)が入力されていました。
エラー表示されるのに正しい数値が出力される場合、放置しておいてもいいのでしょうか?
何度も申し訳ありませんが、ご回答宜しくお願い致します。
No.3
- 回答日時:
>「アプリケーション定義またはオブジェクト定義のエラーです」
>現在のコードは以下になります
>Worksheets("Sheet2").Cells(n, j + 1).Value = u
>Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
当然ながらコードはこの2行だけではないですよね。(^^;;;
n,n+1,j+1の値が0以下またはシート最大行超でないなら
エラーはここではなく別のところにあるはずです。
それは、
>計算された数値(正しい数値でした)が入力されていました
この文言からも推察できます。
で、以下のことをしてください。
このエラーダイアログに「デバッグ」ボタンがあると思いますが
それをクリックするとエラーコードの箇所に色が付きますので
その部分に変数があったらその上にマウス持っていくと、
その変数の値が表示されますのでそれが正しい値か確認してください。
また、そのコードを提示してください。
>エラー表示されるのに正しい数値が出力される場合、放置しておいてもいいのでしょうか?
いくらなんでもこれは拙いでしょう。(^^;;;;
以上。
ご回答ありがとうございます。
変数の値を調べてみたところ、
excelに出力する際に、列番号が256のときにエラーになっていることがわかりました。
ですので、行と列を逆にして出力したら解決しました。
ありがとうございました!
No.1
- 回答日時:
セルの指定で行または列が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以上になるようにする。
早急な回答ありがとうございます。
しかし、ステップインで確認してみましたところどちらの最低値も
n=4
j=1
のように、1以上の自然数でした。
他に考えられる原因があれば回答をお願い致します。
何度も申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
カーソルオープンでエラー(ORA...
-
AccessVBAでExcelを起動し、罫...
-
エクセルでURLに特定文字が含ま...
-
実行時エラー -'-2147417848
-
Debug.exe実行時にWinMainCRTSt...
-
Invalid procedure call or arg...
-
なぜエラーになるのでしょうか...
-
[Delphi] データセットは閉じて...
-
「アプリケーション定義または...
-
VBA実行時のエラー
-
OLEDB.NETで接続できない
-
トランスポートレベルのエラー
-
VBAでESCキーを無効にしたいの...
-
ExcelVBA Range クラスの Page...
-
【VBA】ボタンに登録したマクロ...
-
VBS実行時エラー オブジェクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー -'-2147417848
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VB6+SQL サーバー 2000 で 実行...
-
OLEDB.NETで接続できない
-
EXCEL/VBAで、自分のPCだけエラ...
-
ExcelVBA Range クラスの Page...
-
Invalid procedure call or arg...
-
VBAでのエラー
-
AccessVBAでExcelを起動し、罫...
-
[Delphi] データセットは閉じて...
-
VBAで実行時エラー'424' オブジ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
おすすめ情報