目前我有一个大约有200000+条记录的excel,我需要根据列过滤数据。该列有大约5个值,我需要在一张表中过滤出2个值,其余3个保留在同一张表中。在excel表格中使用Autofilter从Excel中剪切粘贴数据VBA
现在不是使用逐个单元格比较来检查单元格的值是否落入上述2个值中的任何值,然后将该行剪切粘贴到另一个表格中。这不适用于200k +记录,只是挂起。
而是计划采用自动过滤器方法。我试着用“录制宏”功能,但问题是,它给了我像
“Excel无法创建或使用的数据范围内引用一些错误,因为以下 使用数据的其过于complex.Try一个可以在矩形中选择 使用来自同一工作表的数据“
此外如何将仅粘贴过滤值的粘贴复制到另一个工作表?如果我尝试直接复制粘贴或将特殊粘贴粘贴为“值”,那么即使隐藏的行也会被复制粘贴。
下面是宏代码我一直在玩弄周围
Sub Macro34()
'
' Macro34 Macro
'
'
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$T$81335").AutoFilter Field:=6, Criteria1:="=242", _
Operator:=xlOr, Criteria2:="=244"
Cells.Select
Selection.Copy
ActiveWindow.SmallScroll Down:=21
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=-18
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Sheets("Sheet1").Select
Selection.Copy
Sheets("Sheet2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=93
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-9
ActiveWindow.ScrollRow = 1
Rows("1:1").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
可能有一些代码行的垃圾上面作为其使用“录制宏”功能生成。
有人可以帮我。问题在于excel中存在的数据量。不能在Excel中处理这么多的数据?我使用Excel 2007
请不要使用'Select'。只需在对象上使用该方法,比如'Rows(“1:1”)。AutoFilter'。 –
问题是excel抛出错误原因不明... :( –
我明白我没有指出问题,这就是为什么我留下评论而不是答案,但你会发现它更容易用更简洁的代码来判断错误,就像在他的答案中使用的变体一样。 –