這不是我做的最漂亮的事情,但我要去嘗試......
你可能要考慮增加了一些變數,因爲你知道有些項目要上表(「REC」):
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 #
以你所擁有的,並與它的滾動,遍歷表(「時代」):
lRow = Sheets("Time").Range("A" & Sheets("Time").Rows.Count).End(xlUp).Row
For i = 2 to lRow
我會建議避免在開始時選擇表格,並按照名稱指定表格,或者使用With語句(後者可能無法像Select Case一樣順暢地工作)。
然後,您可以在循環內部使用與您的Number數相同的Select Case,例如示例中的9。
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
然後,你應該能夠讓它運行非常流暢,確保接下來我。這一切看起來像這樣:
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