2016-10-14 23 views
1

私は35,000行をフィルタリングして削除できるコードを作成しようとしています。フィルタと全体行の削除

私は以下のコードを使用しましたが、時間がかかりました(10分以上)、誰でも早くできるように助けてくれますか?

コード1:

Range("$A$1:$S$50000").AutoFilter Field:=19, Criteria1:="Delete" 
ActiveSheet.AutoFilter.Range.Offset(1, 0).Rows.SpecialCells(xlCellTypeVisible).Delete (xlShiftUp) 

コード2:

Dim RngToDelete As Range 
Range("$A$1:$S$50000").AutoFilter Field:=19, Criteria1:="Delete" 
Set RngToDelete = Selection.SpecialCells(xlCellTypeVisible) 
RngToDelete.Delete 

おかげで、 Amith

+0

[Excel VBAのパフォーマンス - 100万行の可能な複製 - 値を含む行を1分未満で削除](http://stackoverflow.com/questions/30959315/excel-vba-performance-1-million- rows-delete-rows-a-value-in-less) –

+0

すでに 'application.screenupdating = FALSE'でしたか?それは時間を節約します。 –

+0

はい、私は使用していました - application.screenupdating = FALSE –

答えて

0

あなたは非常に高速なパフォーマンスとAdvancedFilterを使用してタスクを達成することができます。

VBA

データ - >高度なフィルタなしA.ソリューション、「その場でリストをフィルタ」とデータ範囲や基準に記入を選択します。 VBAコード

レンジで

B.ソリューション( "A1:S50000")AdvancedFilterの処置:= xlFilterInPlace、CriteriaRange:=範囲( "U1:U2")、ユニーク:= Falseの

セルU1にフィールド名(列19)、セルU2に '<>削除'という条件を定義します。確かに、あなたはいつでも基準を他の場所に置くことができます。

関連する問題