间歇性地粘贴特殊工作

时间:2013-08-20 06:03:38

标签: excel vba filter

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

  1. 过滤工作表中的数据
  2. 将过滤后的数据复制到第二个工作表
  3. 虽然粘贴特效适用于某些过滤器,但它不适用于其他过滤器。我发现当行数超过50000时它不起作用。有没有解决方法呢?

    我目前正在使用代码:

    selection.copy sheet10.range("A1") 
    

    将内容复制到新表

1 个答案:

答案 0 :(得分:1)

问题解释

Excel 2010 can select a maximum of 2048 ranges。每个范围都是一个不间断的矩形区域。我相信这种限制会影响复制过滤范围。过滤表中的每个不可见行将上下区域分成不同的范围。因此,如果您有4097行数据并且每隔一行过滤掉一次,那么您将达到Excel的限制。任何其他行都无法正确复制。我在这里猜测你提供的有限信息。你没有说过什么结果不起作用。

潜在的解决方法

您可以插入一个新列,而不是仅使用过滤器,该列的公式可根据过滤条件返回true / false值。然后在筛选之前对该列上的表进行排序。首先对表格进行排序,确保所有可见数据都在一个连续的范围内,因此不要复制2048个范围,而只复制一个。

例如,如果我想过滤A列以“Cat”开头,B列过少于5,我可能会写一个公式:

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

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