Vba 对象“范围”的方法“PasteSpecial”失败
我已经看了很久了,我知道这很简单 下面的代码向我抛出了一个错误,对象“Range”的方法“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
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将是数据表,因此我需要此工作簿。谢谢你的回答。