无法从Excel 2007宏中的自动过滤工作表中剪切/粘贴可见行

时间:2011-07-20 09:35:00

标签: excel vba excel-vba

我需要根据各种标准将行从单个工作表移动到多个目标表。我认为使用过滤器+复制/粘贴比循环遍历每一行并检查它以查看它所属的位置更快,但我不确定如何在过滤数据后获得可用范围。现在,我正在制作一系列可见的细胞,就像这样:

Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible)

然后粘贴它(NextRowInteger持有下一个空白行号:

rngSuspect.Cut Destination:=Sheets("Suspect WWAs").Rows(NextRow)

这失败并显示消息The command you chose cannot be performed with multiple selections. Select a single range and click the command again.我认为这与数据由于过滤的行实际分成多个区域这一事实有关。我宁愿不循环遍历范围中的每一行并单独移动它们。当然,这里有一个更优雅的解决方案......

2 个答案:

答案 0 :(得分:3)

保持代码的解决方法:您不能剪切多个选择,但您可以复制它。然后,删除,就像 cut 那样。

此致

答案 1 :(得分:0)

我的解决方法是对工作表进行排序,以便您需要剪切或复制的所有行都相邻。可能需要相当复杂的排序,但是您可以应用过滤器,并且行应保持相邻,并且可以使用通常的可见选择代码安全地剪切或复制。