[英]Copy rows from one sheet into other sheet and after 7 columns go to next row using vba in excel
[英]VBA - Copy specific value from one sheet column to next sheet row
我需要幫助,我有2張紙,在第一張紙上,我用不同的數字(1到50)記錄時間,我想將時間戳復制到相同數字的新紙上。 工作表1:工作表1示例
工作表2:工作表2示例
請提供VBA代碼幫助以自動完成此操作。
Sub mytry()
Dim lRow As Long
Dim lRow1 As Long
Dim time1 As Date
Sheets("Time").Select
lRow = Range("A" & Rows.Count).End(xlUp).Row
For iCntr = 2 To lRow
num1 = Cells(iCntr, 1)
Sheets("Rec").Select
lRow1 = Range("A" & Rows.Count).End(xlUp).Row
For iCntr2 = 2 To lRow1
If Cells(iCntr2, 1) = num1 Then
time1 = Cells(iCntr2, 2)
Sheets("Time").Select
For t1 = 2 To 20
If Cells(iCntr, t1) = "" Then
Cells(iCntr, t1) = time1
End If
GoTo 1
Next t1
1
Sheets("Rec").Select
End If
Next iCntr2
Sheets("Time").Select
Next iCntr
結束子
這不是我做過的最漂亮的事情,但是我要嘗試...
您可能要考慮添加一些變量,因為您知道某些項目將在Sheets(“ 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 #
拿走你擁有的東西並滾動,以遍歷Sheets(“ Time”):
lRow = Sheets("Time").Range("A" & Sheets("Time").Rows.Count).End(xlUp).Row
For i = 2 to lRow
我建議您避免在開始時選擇工作表,並隨便使用名稱來指定工作表,或者使用With語句(對於我使用Select Case的路徑,后者可能不太順利)。
然后,您可以在循環內部使用與數字計數等效的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
然后,您應該能夠使其運行得非常順利,並確保執行Next 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.