excel 2010返回:运行时错误'1004':“Range类的PasteSpecial方法失败

此VBA代码已经开始返回错误消息:“运行时错误”1004“:”类别的类别的PasteSpecial方法失败“

我使用VBA代码将几个单元格复制并粘贴到下一行。 我经常连续运行几次。 它从来没有失败的第一遍。 在开始失败之前,它工作了很多年。

Sub CopyInfoToLineBelowSamePO_Ctrl_Shft_Y() ' ' CopyInfoToLineBelowSamePO_Ctrl_Shft_Y Macro ' ' Keyboard Shortcut: Ctrl+Shift+Y ' Selection.Copy ActiveCell.Offset(1, 0).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveCell.Offset(-1, 5).Range("A1").Select Application.CutCopyMode = False Selection.Copy ActiveCell.Offset(1, 0).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveCell.Offset(0, -5).Range("A1").Select End Sub 

我认为这个失败发生在这一点上(第一次出现):

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

我不确定为什么你的代码在以前使用的相同情况下使用时会失败。 不过,我会build议使用下面的代码来执行相同的操作:

 Sub CopyInfoToLineBelowSamePO_Ctrl_Shft_Y() ActiveCell.Offset(1, 0).Value2 = ActiveCell.Value2 ActiveCell.Offset(1, 5).Value2 = ActiveCell.Offset(0, 5).Value2 ActiveCell.Offset(1, 0).Select End Sub 

不是使用剪贴板复制和粘贴值,而是直接将下一行中单元格的值设置为上面的值,然后将选定内容移到下一个单元格。

这将避免任何复制/粘贴错误,如果它失败,对代码进行故障排除是微不足道的。