不正确地复制值

我有一个问题与我的macros只复制粘贴范围A6:AM46,A52:AM84到同一张纸上的AN6位置的值。

  Sub PréparerGrilles() Range("A6:AM46,A52:AM84").Select Selection.Copy Range("AN6").Select Application.CutCopyMode = False ActiveSheet.Paste End Sub 

我得到1004错误(多选错误)你能帮我吗?

要将A6:AM46,A52:AM84 复制到AN6:BZ46,AN52:BZ84您可以执行以下操作:

 Sub PreparerGrilles() Range("AN6:BZ46").Value = Range("A6:AM46").Value Range("AN52:BZ84").Value = Range("A52:AM84").Value End Sub 

使用Range.Copy方法的版本:

 Sub PreparerGrilles() Range("A6:AM46").Copy Destination:=Range("AN6:BZ46") Range("A52:AM84").Copy Destination:=Range("AN52:BZ84") Range("AN6:BZ46").Value = Range("AN6:BZ46").Value Range("AN52:BZ84").Value = Range("AN52:BZ84").Value End Sub 

我build议你不要使用这个来减慢你的代码。 如果您的公式涉及任何不属于副本的内容,那么也会导致潜在的错误值。


使用PasteSpecial xlPasteValues方法的版本:

 Sub PreparerGrilles() Range("A6:AM46").Copy Range("AN6:BZ46").PasteSpecial xlPasteValues Range("A52:AM84").Copy Range("AN52:BZ84").PasteSpecial xlPasteValues End Sub 

强烈build议不要使用这种方法,因为它会导致太多“不可重复的”错误,这是由于用户通过剪贴板在代码执行“复制”和“粘贴”之间进行复制时,以及由于复制无论用户可能手动粘贴到剪贴板上

Application.CutCopyMode = False清除剪贴板….

更好的代码是:

  Sub Test() Dim wb As Workbook, ws As Worksheet Set wb = ThisWorkbook Set ws = wb.Sheets("SOMMAIRE") 'this means it will only work on this sheet, you should change the name of the sheet or ask me what do you want in order to get it working on other sheets ws.Range("A6:AL46").Copy ws.Range("AN6").PasteSpecial xlValues ws.Range("A52:AM84").Copy ws.Range("AN52").PasteSpecial xlValues End Sub 

编辑:现在应该做的伎俩。 试试看,并告诉我,如果它的作品

编辑2:这是你想要的,至less对于你问到目前为止。