使用Excel中的VBA剪切并粘贴循环错误1004

对于我当前的项目,我试图将一组工作表中的单元格向下移动一定数量的行。 我认为最简单的方法就是把倒数第二组剪下来,粘贴到最后一组,然后把倒数第三组剪下来放到倒数第二的地方,等等(因为我不想成为不断扩大的名单)使用下面的代码:

For i = 298 To 8 Step -5 Sheets("Calc").Range(Cells(i, 130), Cells(i + 4, 130)).Cut Sheets("Calc").Range(Cells(i + 5, 1)).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Next i 

但是,我总是在第二行代码中得到运行时错误1004。

谁能帮我吗?

改用这个:

 With Sheets("Calc") For i = 298 To 8 Step -5 .Range(.Cells(i, 130), .Cells(i + 4, 130)).Cut Destination:=.Cells(i + 5, 130) Next i End With 

Howerver,正如我看到的,你可以做到这一点没有循环:

 With Sheets("Calc") .Range(.Cells(8, 130), .Cells(302, 130)).Cut Destination:=.Cells(13, 130) End With 

顺便说一句,我已经从Sheets("Calc").Cells(i + 5, 1)Sheets("Calc").Cells(i + 5, 130) (我理解你的问题,你想要的将细胞向下移动,但不跨越)

Cut不能使用PasteSpecial

您可以复制并粘贴为值

要么

你可以剪切和粘贴