运行时错误1004:工作表类的粘贴方法失败

有很多关于这个错误的信息,以及如何解决,但我已经尝试了这么多,没有任何工作:看到下面的问题块的代码

Range("A1:K2").Select Selection.Copy Windows("EIL Depannage Register.xlsm").Activate Sheets("Raising Depannage").Select ActiveSheet.Unprotect Sheets("Import_Sheet").Select ActiveSheet.Unprotect Range("A1").Select Application.Wait (Now + TimeValue("00:00:10")) ActiveSheet.Paste <<<<<error happens at this line 

使用.Paste最后一行发生错误。

.Unprotect命令取消您的.CutCopyMode所以基本上没有什么可粘贴的。 启动复制和粘贴操作之前,您必须取消保护工作表。

 Dim ws As Worksheet Set ws = ActiveSheet Windows("EIL Depannage Register.xlsm").Activate With ActiveWorkbook .Worksheets("Raising Depannage").Unprotect With .Worksheets("Import_Sheet") .Unprotect ws.Range("A1:K2").Copy Destination:=.Range("A1") End With End With 

我不喜欢使用ActiveSheet来限定原始工作表,但是您的代码没有指定工作簿或工作表,这使我没有多lessselect余地。

你可以尝试这样吗?

 Range("A1:K2").Copy Windows("EIL Depannage Register.xlsm").Activate Sheets("Raising Depannage").Unprotect Sheets("Import_Sheet").Unprotect Sheets("Import_Sheet").Range("A1").Paste 

编辑:像这样的:

 Dim wb As Workbook Dim ws As Worksheet set wb = activeworkbook set ws = activesheet Windows("EIL Depannage Register.xlsm").Activate Sheets("Raising Depannage").Unprotect Sheets("Import_Sheet").Unprotect wb.ws.Range("A1:K2").Copy Windows("EIL Depannage Register.xlsm").Activate Sheets("Import_Sheet").Range("A1").Paste 

玩一下,它应该工作。

尝试

 dim shSrc as worksheet dim shTarget as worksheet set shSrc =Workbooks("EIL Depannage Register.xlsm").Sheets("Raising Depannage") set shTarget =Workbooks("EIL Depannage Register.xlsm").Sheets("Raising Depannage") shSrc.unprotect shTarget.unprotect shSrc.Range("A1:K2").Copy shTarget. Range("A1").Paste shSrc.protect shTarget.protect set shsrc=nothing set shtarget=nothing` 

只是修复源和目标,并validation范围