有很多关于此错误的信息以及如何修复,但我已经尝试了很多这些错误并且没有任何效果:请参阅下面的问题代码块
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在最后一行发生错误。
答案 0 :(得分:1)
.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
来限定原始工作表,但是您的代码没有指定工作簿或工作表,这让我没什么选择。
答案 1 :(得分:0)
你能这样试试吗?
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
玩一下,应该可以。
答案 2 :(得分:0)
试
fix.detectChanges()
只需修复源和目标并验证范围
答案 3 :(得分:0)
代码的最后一行应该是:
Sheets("Import_Sheet").paste Range("A1")
粘贴是工作表的一种方法,range("A1")
是目标参数。