2016-08-04 28 views
0

セル内の数値を含む行を削除したい。次のコードを実行すると、IsEmpty関数とIsNumeric()関数が正しく評価され、行が削除されます。しかし、それは何らかの理由で停止し、3回の試行後に完了します。注:私はCell.ValueとCell.Value2を試しました。あなたがその範囲内の数式を持っていない場合セル内の数値を含む行を削除するVBAループ

For Each Cell In Range("H1:H600") 
    If Not IsEmpty(Cell) Then 
     If IsNumeric(Cell.Value) Then 
      Cell.EntireRow.Delete 
     End If 
    End If 
Next 
+1

ボトムアップから、外出先を削除するには、はるかに一貫性のある結果を得るでしょう。 – sous2817

+1

これは、行を削除すると、他の行がバンプするためです。 1を削除すると、iを 'i = i-1'で減らす –

+1

逆方向にループする必要があります。そうしないと、行がスキップされます。 3つのオプションについてはこちらをご覧ください。 http://stackoverflow.com/questions/33744149/code-in-vba-loops-and-never-ends-how-to-fix-this –

答えて

1

Range("H1:H600").SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Delete 
+0

私は同じ考えをしていましたが、数字の一部がテキストとして保存されている可能性があります – Slai

+0

これにより、数字も削除されますテキストとしてフォーマットされた –

+0

返信の遅れのためにお詫び申し上げます。これはうまくいっていて、明らかに私が持っていたよりもずっと速いです。ありがとう – user2336288

関連する問題