Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 对象“范围”的方法“PasteSpecial”失败_Vba_Excel - Fatal编程技术网

Vba 对象“范围”的方法“PasteSpecial”失败

Vba 对象“范围”的方法“PasteSpecial”失败,vba,excel,Vba,Excel,我已经看了很久了,我知道这很简单 下面的代码向我抛出了一个错误,对象“Range”的方法“PasteSpecial”失败就是错误 With xlWB.Sheets("Lookups") 'Copy lookups tab to word test tables .Cells.Copy ThisWorkbook.Sheets("Word_Test_Tables").Cells.PasteSpecial Application.CutCopyMode = False

我已经看了很久了,我知道这很简单

下面的代码向我抛出了一个错误,对象“Range”的方法“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到f5,但实际上不会发生任何事情,我无法选择任何选项卡或工作簿,必须结束应用程序的任务

在误差线上放置一个断点,我可以从中得到一个范围

?ThisWorkbook.Sheets("Word_Test_Tables").Cells
我已尝试激活工作表,取消隐藏工作表。我可以确认xlWB有效且已打开,.cells.copy在工作表周围高亮显示时看起来正常工作


有什么想法吗?

你需要拿出你的“with”将值粘贴到其他工作簿中:

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

End With

ThisWorkbook.Sheets("Word_Test_Tables").Cells.PasteSpecial

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

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

根据源工作簿的不同,您可能有不同大小的工作表。尝试复制较小的范围


此外,您可能希望使用ActiveWorkbook而不是ThisWorkbook。

在上述操作中遇到相同的错误。据我所知,只要您不使用,您应该能够在中完成上述操作。好吧,这很奇怪,因为我在发布之前测试了代码,它运行良好?还有更多的代码没有包括在内吗?尽管我认为@Rory可能是使用usedRange的最佳解决方案?出于参数考虑,我使用了与我最初发布的.usedRange而不是.cells相同的代码,并且工作得很好。表是完全一样的,所以看不出为什么。单元格不工作,但它工作了:。有很多代码没有包括在内,发布一个更大的代码片段可能需要数千行代码,但这是唯一考虑SheetLookups的部分,出于某种原因,它工作得非常完美。表是完全相同的,所以我不知道为什么这将是好的,我的代码不会。我试着在中使用.usedrange.copy,就像我的原始代码一样,这也有效,一定是与.cells有关?有没有想过为什么?这两本作业本的格式是一样的吗?i、 e.不从xlsx复制到xls,或从xls复制到xls?那就好了。是否有合并的单元格或隐藏的行/列?这可能只是您正在复制的单元格的数量。它们是合并的单元格,但没有隐藏的行/列。不幸的是,我无法摆脱合并的单元格,你认为这可能是问题所在吗?我知道他们可能会很痛苦。如果是这样,也许我可以在粘贴前清除目标工作表上的所有格式?它正在处理的数据范围是A1:DN424,所以它不是大量的。我会坚持使用usedrange版本。看起来更小的范围可以解决我的问题。即使床单是一样的,完全一样。activeworkbook将是数据表,因此我需要此工作簿。谢谢你的回答。