- ベストアンサー
(VBA) FOR文の修正をお願いします。
- シート(DATA)の内容をシート(Chapter)に順番(FOR文)に書き出したい。
- 現在のコードではFOR文の変数とSTEPの値が間違っている。
- 修正したいコードはそのままではなく、特定の形式に書き換える必要がある。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
参考に Dim WS As Worksheet, EndLow As Long Dim I As Long, J As Long Set WS1 = Worksheets("DATA") EndLow = WS1.Cells(Rows.Count, "E").End(xlUp).Row With Worksheets("Chapter") For I = 3 To EndLow J = J + 1 .Cells(J, "A") = "CHAPTER" & WS1.Cells(I, "H") & "=" & Format(WS1.Cells(I, "E").Value, "h:mm:ss") J = J + 1 .Cells(J, "A") = "CHAPTERNAME=" & WS1.Cells(I, "G") Next End With
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1719/2589)
With Worksheets("Chapter") For I = 1 To EndLow - 2 .Cells(I + .Rows(I).Row - 1, "A") = "CHAPTER" & WS1.Cells(I + 2, "H") & "=" & Format(WS1.Cells(I + 2, "E").Value, "h:mm:ss") .Cells(I + .Rows(I).Row, "A") = "CHAPTERNAME=" & WS1.Cells(I + 2, "G") Next End With でいけると思いますが、変に計算するより 単純に J = 1 With Worksheets("Chapter") For I = 1 To EndLow - 2 .Cells(J, "A") = "CHAPTER" & WS1.Cells(I + 2, "H") & "=" & Format(WS1.Cells(I + 2, "E").Value, "h:mm:ss") .Cells(J + 1, "A") = "CHAPTERNAME=" & WS1.Cells(I + 2, "G") J = J + 2 Next End With とした方が、変更になったときに対処しやすいと思います。
- watabe007
- ベストアンサー率62% (476/760)
こちらも For I = 3 To EndLow .Cells((I - 3) * 2 + 1, "A") = "CHAPTER" & WS1.Cells(I, "H") & "=" & Format(WS1.Cells(I, "E").Value, "h:mm:ss") .Cells((I - 3) * 2 + 2, "A") = "CHAPTERNAME=" & WS1.Cells(I, "G") Next
お礼
watanabe007さん、回答ありがとうございます。 変数(J)の使い方は、全く考えが及びませんでした。 No.2の回答も参考になりました。 おかげさまで無事解決しました。