0

我正在尝试执行以下操作:

  1. 过滤工作表中的数据
  2. 将过滤后的数据复制到第二个工作表中

虽然特殊粘贴适用于某些过滤器,但不适用于其他过滤器。我发现当行数超过50000时它不起作用。有没有解决方法?

我目前正在使用编码:

selection.copy sheet10.range("A1") 

将内容复制到新工作表中

4

1 回答 1

1

问题说明

Excel 2010 最多可以选择 2048 个范围。每个范围都是一个完整的矩形区域。我相信这个限制会影响复制过滤范围。过滤表中的每个不可见行都将上方和下方的区域拆分为单独的范围。因此,如果您有 4097 行数据并且每隔一行过滤一次,您将达到 Excel 的限制。任何其他行都不会正确复制。我从您提供的有限信息中猜测。你没有说当它不起作用时结果是什么。

潜在的解决方法

您可以插入一个新列,其中包含一个基于过滤条件返回真/假值的公式,而不是仅使用过滤器。然后在过滤之前对该列上的表进行排序。通过首先对表进行排序,您可以确保所有可见数据都在一个连续的范围内,因此您只需复制一个,而不是复制 2048+ 个范围。

例如,如果我想为任何以“Cat”开头的内容过滤 A 列,为小于 5 的任何内容过滤 B 列,我可能会编写一个公式:

=AND(LEFT(A2,3)="Cat", B2<5)

然后我可以对该列进行排序,然后过滤为 TRUE。

于 2013-08-20T06:27:47.233 回答