我正在尝试选择电子表格的前7行(确切的数字可能会有所不同)并将其向下移动32行(向下移动的行数也可能不同)。有人可以帮我代码吗?我试过了:
Worksheets("Report").Cells(x1, 5).EntireRow.Offset(32, 0).Select
我也试过
for i = 1 to 7
set x1 = worksheets("Report").Cells(i, 5)
Rows(x1).EntireRow.Offset(32, 0).Select
也不会工作。在此先感谢您的帮助!
答案 0 :(得分:10)
这可以满足您的要求,如果在32次之后有任何行,则将它们向下移动:
Sub MoveRowsDown()
Dim NumRows As Long
Dim TargetRow As Long
Dim ws As Excel.Worksheet
NumRows = 7 'change as necessary
TargetRow = 33 'change as necessary
Set ws = ActiveSheet ' change as necessary
ws.Range("A1").Resize(NumRows).EntireRow.Cut
ws.Range("A" & TargetRow + NumRows).EntireRow.Insert shift:=xlDown
End Sub
编辑:这是一个只剪切和粘贴的版本,没有花哨的插入:
Sub MoveRowsDown()
Dim NumRows As Long
Dim TargetRow As Long
Dim ws As Excel.Worksheet
NumRows = 7 'change as necessary
TargetRow = 33 'change as necessary
Set ws = ActiveSheet ' change as necessary
ws.Range("A1").Resize(NumRows).EntireRow.Cut Destination:=ws.Range("A" & TargetRow)
End Sub
答案 1 :(得分:2)
试试这个
Sub marine()
ActiveSheet.Rows("32:38").Value = ActiveSheet.Rows("1:7").Value
ActiveSheet.Rows("1:7").Clear
End Sub
将活动表替换为您的工作表名称。 activesheets不是最好的
答案 2 :(得分:1)
刚刚发现:
range("A1:C6").Cut range("A10")
甜!
我也会尝试:
rows("1:7").cut rows("32")