Vba Can';t从Excel 2007宏中的自动筛选工作表中剪切/粘贴可见行
我需要根据各种条件将行从单个工作表移动到多个目标工作表中。我认为使用filters+copy/paste比在每一行上循环并检查它以查看它所属的位置要快得多,但我不确定在数据被过滤后如何获得可用范围。现在,我正在制作一系列的可见细胞,像这样抓取:Vba Can';t从Excel 2007宏中的自动筛选工作表中剪切/粘贴可见行,vba,excel,Vba,Excel,我需要根据各种条件将行从单个工作表移动到多个目标工作表中。我认为使用filters+copy/paste比在每一行上循环并检查它以查看它所属的位置要快得多,但我不确定在数据被过滤后如何获得可用范围。现在,我正在制作一系列的可见细胞,像这样抓取: Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible) 然后像这样粘贴它(NextRow是一个整数包含下一个空行号): 此操作失败,消息为,您选择的命令无法在多个选项中执行。选择一个区域,然
Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible)
然后像这样粘贴它(NextRow
是一个整数
包含下一个空行号):
此操作失败,消息为
,您选择的命令无法在多个选项中执行。选择一个区域,然后再次单击该命令。
我认为这与数据由于过滤行而实际分割为多个区域有关。我不希望在范围内的每一行上循环并单独移动它们。当然这里有一个更优雅的解决方案…一个保留代码的变通方法:您不能剪切多个选择,但可以复制它。然后,像剪切一样删除它
关于,我的解决办法是对工作表进行排序,以便所有需要剪切或复制的行都相邻。可能需要相当复杂的排序,但是您可以应用过滤器,行应该保持相邻,并且可以使用通常可见的选择代码安全地剪切或复制
rngSuspect.Cut Destination:=Sheets("Suspect WWAs").Rows(NextRow)