对象'Range'的方法'PasteSpecial'失败

我已经看了很多年了,我知道它很简单。

下面的代码是抛出一个错误“方法'PasteSpecial'的对象'范围'失败”是错误

With xlWB.Sheets("Lookups") 'Copy lookups tab to word test tables .Cells.Copy ThisWorkbook.Sheets("Word_Test_Tables").Cells.PasteSpecial Application.CutCopyMode = False End With 

该错误发生在pastespecial上。

一旦发生这个错误,代码将继续f5通过,但实际上什么都不会发生,我不能select任何标签或工作簿,并不得不结束任务的应用程序。

把一个断点放在错误线上我可以得到一个范围

 ?ThisWorkbook.Sheets("Word_Test_Tables").Cells 

我已经尝试激活工作表,取消隐藏工作表。 我可以确认xlWB是有效的,并打开.cells.copy看起来正在工作,因为你得到的表单高亮。

有任何想法吗?

我不知道你为什么要复制所有的单元格,而不是仅仅使用范围:

  xlWB.Sheets("Lookups").Usedrange.copy _ Destination:=ThisWorkbook.Sheets("Word_Test_Tables").Range("A1") 

您需要从“with”中将其粘贴到其他工作簿中:

 With xlWB.Sheets("Lookups") 'Copy lookups tab to word test tables .Cells.Copy End With ThisWorkbook.Sheets("Word_Test_Tables").Cells.PasteSpecial 

您可能有不同大小的工作表取决于源工作簿。 尝试复制一个较小的Range

此外,您可能需要ActiveWorkbook而不是ThisWorkbook