これは私がやったきれいなものではありませんが、私は試してみるつもりです...
あなたは、いくつかの変数を追加することについて考えてよいでしょう
Dim i as integer
Dim lRow as Long 'Specific to Sheets("Time")
Dim LC1 as Long, LC2 as Long, LC3 as Long 'Up to LC9 in the example for Last Column for Row #
は、あなたが持っているものを取り、シート(「時間」)をループし、それをローリング::
あなたには、いくつかの項目は、シート(「REC」)の上にあることを行っている場所を知っているので、 210
lRow = Sheets("Time").Range("A" & Sheets("Time").Rows.Count).End(xlUp).Row
For i = 2 to lRow
最初にシートを選択しないで、名前を付けてシートを指定するか、Withステートメントを使用することをお勧めします(後者は、Select Caseを使用するパスではうまく機能しない可能性があります)。
この例では、Number count(たとえば9)に相当するループの中でSelect Caseを使用できます。
Select Case Cells(i,1).Value
Case 1
LC1=Sheets("Rec").Cells(2, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(2,LC1)
Case 2
LC2=Sheets("Rec").Cells(3, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(3,LC2)
Case 3
LC3=Sheets("Rec").Cells(4, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(4,LC3)
End Select
次に、次のiを確認して、それをかなりスムーズに実行できるようにする必要があります。それはすべてのように一緒に来る:
Dim i as integer
Dim lRow as Long
Dim LC1 as Long, LC2 as Long, LC3 as Long
lRow1 = Sheets("Time").Range("A" & Sheets("Time").Rows.Count).End(xlUp).Row
For i = 2 to lRow
Select Case Cells(i,1).Value
Case 1
LC1=Sheets("Rec").Cells(2, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(2,LC1)
Case 2
LC2=Sheets("Rec").Cells(3, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(3,LC2)
Case 3
LC3=Sheets("Rec").Cells(4, Sheets("Rec").Columns.Count).End(xlToLeft).Column
Sheets("Time").Cells(i,2).Copy Sheets("Rec").Cells(4,LC3)
End Select
Next i
これまでにどのようなコードを試しましたか?スタックオーバーフローは、無料のコード記述サービスではありません... – Prebsus
あなたはどのようなコードを既に持っていますか?それはなぜ失敗ですか?現在のソリューションでは何を苦労していますか? –
私が試したことを追加しました – fouriec