Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Can';t从Excel 2007宏中的自动筛选工作表中剪切/粘贴可见行_Vba_Excel - Fatal编程技术网

Vba Can';t从Excel 2007宏中的自动筛选工作表中剪切/粘贴可见行

Vba Can';t从Excel 2007宏中的自动筛选工作表中剪切/粘贴可见行,vba,excel,Vba,Excel,我需要根据各种条件将行从单个工作表移动到多个目标工作表中。我认为使用filters+copy/paste比在每一行上循环并检查它以查看它所属的位置要快得多,但我不确定在数据被过滤后如何获得可用范围。现在,我正在制作一系列的可见细胞,像这样抓取: Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible) 然后像这样粘贴它(NextRow是一个整数包含下一个空行号): 此操作失败,消息为,您选择的命令无法在多个选项中执行。选择一个区域,然

我需要根据各种条件将行从单个工作表移动到多个目标工作表中。我认为使用filters+copy/paste比在每一行上循环并检查它以查看它所属的位置要快得多,但我不确定在数据被过滤后如何获得可用范围。现在,我正在制作一系列的可见细胞,像这样抓取:

Set rngSuspect = ActiveSheet.Cells.SpecialCells(xlVisible)
然后像这样粘贴它(
NextRow
是一个
整数
包含下一个空行号):


此操作失败,消息为
,您选择的命令无法在多个选项中执行。选择一个区域,然后再次单击该命令。
我认为这与数据由于过滤行而实际分割为多个区域有关。我不希望在范围内的每一行上循环并单独移动它们。当然这里有一个更优雅的解决方案…

一个保留代码的变通方法:您不能剪切多个选择,但可以复制它。然后,像剪切一样删除它


关于,

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

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