如何编写循环以在excel中复制和粘贴多行?
所以我有一个很长的表格,我想把每90个单元格放在一页上。我试着写一个循环,每次45行复制粘贴一次,但我真的不知道怎么做。任何帮助都将不胜感激!先谢谢你如何编写循环以在excel中复制和粘贴多行?,excel,vba,Excel,Vba,所以我有一个很长的表格,我想把每90个单元格放在一页上。我试着写一个循环,每次45行复制粘贴一次,但我真的不知道怎么做。任何帮助都将不胜感激!先谢谢你 Sub Macro2() Range("A47:C92").Select (I selected 45 rows a time) Selection.Cut Range("E1").Select ActiveSheet.Paste Columns("F:F").C
Sub Macro2()
Range("A47:C92").Select (I selected 45 rows a time)
Selection.Cut
Range("E1").Select
ActiveSheet.Paste
Columns("F:F").ColumnWidth = 15.67
Range("A47:C92").Select
Selection.Delete Shift:=xlUp
Range("A93:C138").Select
Selection.Cut
Range("E47").Select
ActiveSheet.Paste
Range("A93:C138").Select
Selection.Delete Shift:=xlUp
Range("A139:C184").Select
Selection.Cut
Range("E93").Select
ActiveSheet.Paste
Range("A139:C184").Select
Selection.Delete Shift:=xlUp
End Sub
这里有一个模式,你可以这样写一个循环:(我的递增可能有点错误,但要一直玩到正确为止。重要的是循环语法)
我想这就是你想要做的。例如,如果列“A”中有1到300个数据,则希望将其拆分为2列,其中列“A”将包含1到45个数据,列“E”将包含46到90个数据。所以总共有165行来覆盖所有300个数据。看起来是这样的 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 11 1 4 2 5 3 6 7 10 8 11 9
Sub make_dual_column()
'speed up's the process
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim i As Integer, last_row As Integer
'last row of col A
last_row = Range("A" & Rows.Count).End(xlUp).Row
'last row of col E
col_E_last_row = Range("E" & Rows.Count).End(xlUp).Row
'''every after 45 rows, copy the next 45 rows
'''and paste it in column E
For i = 1 To last_row Step 45
If i Mod 2 = 0 Then
Range("A" & i & ":C" & i + 44).Select
Selection.Copy
Range("E" & col_E_last_row & ":G" & col_E_last_row + 44).Select
ActiveSheet.Paste
Range("A" & i & ":C" & i + 44).Select
Selection.ClearContents
'update the last empty row of column E
col_E_last_row = Range("E" & Rows.Count).End(xlUp).Row + 1
End If
Next
' delete all empty cells from column A
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
ActiveWorkbook.Save
'back to normal default state
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub