PasteSpecial多次粘贴

时间:2017-06-07 10:15:50

标签: vba excel-vba excel

我的目标是:过滤某些行,复制这些已过滤的行并将其粘贴到另一张表格上。 我做了两次:第一次,它运作良好,但第二次,根本没有。 在我的代码示例之前,您需要知道:wsData --- filter - > wsDataUpdated --- filter ---> wsDataUpdated2。

问题是:第二个过滤器非常好,但是粘贴就像尴尬:它在整个范围内粘贴,我的意思是:如果我之后只有2行过滤,并将其粘贴在wsDataUpdated2上,范围为:(" A1:A100")它将粘贴50次!!尴尬的部分是它与我的第一个过滤器完全相同的代码,在我的第一个过滤器上,即使我的行数少于我的范围,它也不会粘贴两次或更多...通过一些断点,我发现过滤后的部分和复制部分是完美的。粘贴部分根本不行。

以下是我的代码示例:

    wsDataUpdated.Range("B4").CurrentRegion.AdvancedFilter xlFilterInPlace, wsCriteria2.Range("A1").CurrentRegion
    wsDataUpdated.Range("A1:AG10150").SpecialCells(xlCellTypeVisible).Copy
    wsDataUpdated2.Range("A1:AG10150").PasteSpecial Paste:=xlPasteValues
    wsDataUpdated2.Range("A1:AG10150").PasteSpecial Paste:=xlPasteFormats

2 个答案:

答案 0 :(得分:3)

您是否尝试仅在第一个单元格上粘贴它?

     wsDataUpdated2.Range("A1").PasteSpecial Paste:=xlPasteValues

答案 1 :(得分:3)

这是正常行为。尝试将3个细胞的手动复制粘贴到9个细胞的选择中:您将获得3个拷贝。替换

wsDataUpdated2.Range("A1:AG10150") 

wsDataUpdated2.Range("A1")

这应该可以解决问题。