我正在尝试将数据从一张纸传输到另一张,格式如图所示。第一张数据的长度未知。我使用的代码将以正确的格式放置数据,但所有数据最终都是最后一行的数据。
For b = 1 To l - 1 Step 1
For c = 0 To (l - 2) * 4 Step 4
idvalue = Sheet1.Cells(b + 1, 1).Value
Sheet3.Cells(c + 1, 2).Value = idvalue
namevalue = Sheet1.Cells(b + 1, 2).Value
Sheet3.Cells(c + 2, 2).Value = namevalue
amountvalue = Sheet1.Cells(b + 1, 3).Value
Sheet3.Cells(c + 3, 2).Value = amountvalue
commentsvalue = Sheet1.Cells(b + 1, 4).Value
Sheet3.Cells(c + 4, 2).Value = commentsvalue
Next c
Next b
答案 0 :(得分:0)
这是一个使代码更容易阅读的解决方案。
显然,您还需要将For循环声明更改为需要任何起始行/结束行。
Sub Example()
Dim lNewRow As Long
Dim lOldRow As Long
lNewRow = 1
For lOldRow = 2 To 7
With Sheets("Sheet3")
.Cells(lNewRow, 1) = "ID"
.Cells(lNewRow, 2) = Sheets("Sheet1").Cells(lOldRow, 1)
.Cells(lNewRow + 1, 1) = "NAME"
.Cells(lNewRow + 1, 2) = Sheets("Sheet1").Cells(lOldRow, 2)
.Cells(lNewRow + 2, 1) = "AMT"
.Cells(lNewRow + 2, 2) = Sheets("Sheet1").Cells(lOldRow, 3)
.Cells(lNewRow + 3, 1) = "COMMENTS"
.Cells(lNewRow + 3, 2) = Sheets("Sheet1").Cells(lOldRow, 4)
End With
lNewRow = lNewRow + 4
Next
End Sub