我以兩種不同的方式嘗試了這種方法。Excel VBA在列中反覆地複製並粘貼一系列單元格
首先,選擇要複製的單元格範圍,然後選擇要粘貼的目標範圍。以下是代碼:
Sub PanelData()
Dim size As Integer
Dim i As Integer
Dim shrate As Worksheet
Dim shpanel As Worksheet
Set shrate = Sheets("Rate")
Set shpanel = Sheets("Panel")
size = shrate.Range("B4").End(xlDown).Row
shrate.Range(Cells(4, 2), Cells(size, 2)).Select
Selection.Copy
shpanel.Cells(1, 1).Value = size - 3
For i = 1 To 18
shpanel.Range(Cells(4, 1).Offset((i - 1) * (size - 3), 0), Cells(3, 1).Offset(i * (size - 3), 0)).Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.NumberFormat = "m/d/yyyy"
Next i
End Sub
其次,複製範圍內的單元格,然後逐個粘貼到目標列。這裏是代碼:
Sub LoopingCP()
Dim size As Integer
Dim shrate As Worksheet
Dim shpanel As Worksheet
Set shrate = Sheets(2)
Set shpanel = Sheets(4)
size = shrate.Cells(4, 2).End(xlDown).Row - 3
For x = 1 To 18
For i = 1 To size
shrate.Cells(i + 3, 2).Select
Selection.Copy
shpanel.Cells(x * (i + 3), 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.NumberFormat = "m/d/yyyy"
Next i
Next x
End Sub
這些嘗試都沒有解決。我做錯了什麼?
謝謝
他們怎麼沒有工作?你是否通過VBA得到錯誤?如果是這樣,哪一行發生什麼錯誤?它是否運行,但不按預期複製/粘貼?最後,請參閱[如何避免使用'.Select'](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros),因爲它可能會導致時髦的事情發生,如果你不小心。 – BruceWayne