いつもおせわになっております。
さて、以下の件につきご教授いただければと思います。どうぞよろしくお願いいたします。
以下では正常にうごくのですが、
Private
1 2Const maxcolumn = 39 3Dim j As Long 4Dim n As Long**ボールドテキスト** 5Dim t As Long 6Dim lastrow As Long 7 8With Worksheets("計算表") 9 10For j = 2 To maxcolumn 11lastrow = Worksheets("間隔").Cells(Rows.Count, j).End(xlUp).Row 12n = Worksheets("間隔").Cells(lastrow, j).Value 13 14If lastrow > 1 Then 15.Cells(12, j).Value = n 16 17If lastrow >= 3 Then 18.Cells(13, j).Value = n + Worksheets("間隔").Cells(lastrow - 1, j).Value 19 20End If 21End If 22 23Next j 24 25End With 26End Subここに言語を入力 27コード
t = Worksheets("間隔").Cells(lastrow - 1, j).Value
これに問題があるようで、
t = Worksheets("間隔").Cells(lastrow +1, j).Value
やオフセットにしても、マイナスにするとエラーになります。
Private
1特にセル結合しているわけではなく一行目がラベルになっているというだけです。。 2 3Const maxcolumn = 39 4Dim j As Long 5 6Dim n As Long 7 8Dim t As Long 9 10Dim lastrow As Long 11 12 13With Worksheets("計算表") 14 15 16For j = 2 To maxcolumn 17 18 lastrow = Worksheets("間隔").Cells(Rows.Count, j).End(xlUp).Row 19 20 n = Worksheets("間隔").Cells(lastrow, j).Value 21 t = Worksheets("間隔").Cells(lastrow - 1, j).Value 22 23 24 If lastrow >= 3 Then 25 .Cells(12, j).Value = n + t 26 27 End If 28Next j 29 30 31 End Withここに言語を入力 32コード
どの行でエラーになり、エラーメッセージはなんですか。
タイトルと中身が合致してません。
タイトルは要件を記載してください。
t = Worksheets("間隔").Cells(lastrow - 1, j).Value
この行でエラーになり、アプリケーション定義またはオブジェクト定義のエラーですということです、、
よろしくお願いいたします。。
データがない列あれば、そこでエラーが出るのではないでしょうか。
エラーが出たときにデバッグを押して、lastrow の値を確認してみてください。1になっているということはないですか。
はい、、そのとおりに1とイミディエイトウインドウに出てきました。
m.ts10806 様
大変申し訳ございませんでした。
以後、要件に近いタイトルをつけるように気を付けます。
質問は編集できますので、いつ来るか分からない「以後」に後回しにするのではなく、本質問から対応してください。
TanakaHiroaki
ご回答ありがとううございます。そうですね、、それがなんで起こるのか、、
もう、お気づきだと思いますが、その場合、
Cells(lastrow - 1, j)
だと0行目を参照することになりますが、シートに0行目はないので当然エラーになります。
回答1件
あなたの回答
tips
プレビュー