2016-10-14 15 views
2

.CSVファイルのインポートでシートを更新しようとしています。 すべての情報を読み込んで更新できます。更新後、私はいくつかのデータを削除したい。 Dが空のすべての行を削除する必要があります(行全体)。foreach内の行を削除する

私は、D3:D486(最後の行)をチェックするforeachを持っています。 マクロを実行すると、一部の行が削除されますが、すべての行は削除されません。

Dim rCell As Range 
    Dim rRng As Range 
    Debug.Print CStr(LastRow) 

    Set rRng = Worksheets("sheet1").Range("D3:D" + CStr(LastRow)) 

    For Each rCell In rRng.Cells 
     If Not IsEmpty(rCell) Then 
      Debug.Print rCell.Row 
     Else 
      Debug.Print "Empty" 
      Worksheets("sheet1").Rows(rCell.Row).Delete 
     End If 
    Next rCell 

私は彼が行100、彼は101行に行く次の時間..しかしthatsの前の行102 .. を削除した場合のために、各...例では、私は保存することができますに問題があると思います細胞は配列の中にあるかもしれないが、それは同じであろう。 他の方法(下から上へ)を行った場合を除きます。これをどうすれば解決できますか?

答えて

7

私はあなたがあなた自身の質問に答えたと思う:私はどうなる

Dim rCell As Range 
Dim lastRow, i 
lastRow = 1000 
For i = lastRow To 1 Step -1 
    ' if condition met 
    Worksheets("Sheet1").Range("D:" + i).EntireRow.Delete 
Next 
+1

私は、 '+'の代わりに '&'を使い、ワークシート( "Sheet1")を使うでしょう。セル(i、4).EntireRow.Delete' - テキスト文字列と範囲アドレスを操作する必要はありません。 –

2

以下のようなもの、...

を下から上に、あなたはあまりにもrange.EntireRow.Delete方法を試すことができますそれこのような:

Dim i As Integer 
Dim rRng As Range 
Debug.Print CStr(LastRow) 

Set rRng = Worksheets("sheet1").Range("D3:D" + CStr(LastRow)) 

For i = 1 To rRng.Cells.Count 
    If Not IsEmpty(Worksheets("Sheet1").Range("D:" + i).Value) Then 
     Debug.Print rCell.Row 
    Else 
     Debug.Print "Empty" 
     Worksheets("Sheet1").Range("D:" + i).EntireRow.Delete 
     i = i - 1 
    End If 
Next 
1

レックスの答えはあなたがキュート取得したい場合にも、このようにそれを行うことができますが、正しいです:

Sub DeleteRowsWithCriteria() 
Dim rng As Range, rngCell As Range, rngDelete As Range 
Set rng = Worksheets("sheet1").UsedRange.Columns("D:D").Cells 'Watch out here, if columns A-C are not all used, this doesn't work 
For Each rngCell In rng 
    If rngCell.Value = "" Then 
     If rngDelete Is Nothing Then 
      Set rngDelete = rngCell 
     Else 
      Set rngDelete = Union(rngDelete, rngCell) 
     End If 
    End If 
Next rngCell 
rngDelete.EntireRow.Delete xlShiftUp 
End Sub 
関連する問題