Я пробовал это двумя разными способами.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
Ни одна из этих попыток не разработана. Что я сделал не так?
Thanks
Как они не работали? Вы получили сообщение об ошибке через VBA? Если да, то какая ошибка в какой строке? Выполняется ли это, но не копирует/вставляет, как ожидалось? Наконец, см. [Как избежать использования '.Select'] (https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros), поскольку это может привести к фанковые вещи случаются, если вы не будете осторожны. – BruceWayne