目前我有一個大約有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拋出錯誤原因不明... :( –
我明白我沒有指出問題,這就是爲什麼我留下評論而不是答案,但你會發現它更容易用更簡潔的代碼來判斷錯誤,就像在他的答案中使用的變體一樣。 –