##現したいこと
H列のデータを3つずつ平均して、U列のセルに書き込んで表を作りたいです。H列の最後の端数は、2つのデータの平均か1つのデータをそのままU列に書き込みたいです。
####発生している問題・エラーメッセージ
H2からH16までは順調に処理してくれるのですが、そのあとH27とH28のセルを平均してしまい、そのあとになぜかH20からまた正常に処理を再開します。
エラーメッセージは出ません
前提・実現したいこと
VBA
1Sub 表作成() 2 3Dim i 4For i = 1 To 3 5Sheets(i).Select 6 7 Range("T1").Value = "西進(6H)" 8 Range("U1").Value = "経度平均(12H)" 9 Range("V1").Value = "西進(12H)" 10 Range("W1").Value = "経度平均(24H)" 11 Range("X1").Value = "西進(24H)" 12 13 Columns("U").ColumnWidth = 12 14 Columns("V").ColumnWidth = 8.5 15 Columns("W").ColumnWidth = 12 16 Columns("X").ColumnWidth = 8.5 17 18 Dim t 19 For t = 3 To 100 20 If Cells(t, 8) = "" Then 21 Exit For 22 End If 23 24 Cells(t, 20).Value = "=IF(H" & CStr(t) & "-H" & CStr(t - 1) & "<0,""0"",""1"")" 25 26 Next t 27 28 Dim u 29 For u = 2 To 100 30 If Cells(3 * u - 4, 8) = "" Then 31 Exit For 32 33 ElseIf Cells(3 * u - 3, 8) = "" Then 34 Cells(u, 21) = Cells(3 * u - 4, 8) 35 Exit For 36 37 ElseIf Cells(3 * u - 2, 8) = "" Then 38 Cells(u, 21).Value = "=AVERAGE(H" & CStr(3 * u - 4) & ":H" & CStr(3 * u - 3) & ")" 39 Exit For 40 End If 41 42 Cells(u, 21).Value = "=AVERAGE(H" & CStr(3 * u - 4) & ":H" & CStr(3 * u - 2) & ")" 43 44 Next u 45 46 Dim v 47 For v = 3 To 100 48 If Cells(v, 21) = "" Then 49 Exit For 50 End If 51 52 Cells(v, 22).Value = "=IF(U" & CStr(v) & "-U" & CStr(v - 1) & "<0,""0"",""1"")" 53 54 Next 55 56 Dim w 57 For w = 2 To 100 58 If Cells(5 * w - 8, 8) = "" Then 59 Exit For 60 61 ElseIf Cells(5 * w - 7, 8) = "" Then 62 Cells(w, 21) = Cells(5 * w - 8, 8) 63 Exit For 64 65 ElseIf Cells(5 * w - 6, 8) = "" Then 66 Cells(w, 21).Value = "=AVERAGE(H" & CStr(5 * w - 8) & ":H" & CStr(5 * w - 7) & ")" 67 Exit For 68 69 ElseIf Cells(5 * w - 5, 8) = "" Then 70 Cells(w, 21).Value = "=AVERAGE(H" & CStr(5 * w - 8) & ":H" & CStr(5 * w - 6) & ")" 71 Exit For 72 73 ElseIf Cells(5 * w - 4, 8) = "" Then 74 Cells(w, 21).Value = "=AVERAGE(H" & CStr(5 * w - 8) & ":H" & CStr(5 * w - 5) & ")" 75 Exit For 76 End If 77 78 Cells(w, 23).Value = "=AVERAGE(H" & CStr(5 * w - 8) & ":H" & CStr(5 * w - 4) & ")" 79 80 Next w 81 82 Dim x 83 For x = 3 To 100 84 If Cells(x, 23) = "" Then 85 Exit For 86 End If 87 88 Cells(x, 23).Value = "=IF(W" & CStr(x) & "-W" & CStr(x - 1) & "<0,""0"",""1"")" 89 90 Next x 91 92 93Next i 94 95End Sub 96
試したこと
最初にただifを重ねて条件分岐をしていたので、elseifに書き換えました。
ステップインで実行したりもしたのですが、繰り返しが飛ばされてしまって、よく原因が分かりませんでした。
他に試す方法があれば、教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 07:12