2016-06-13 5 views
0

列Bのデータを含まないすべての行を削除するマクロを作成しようとしています。これは私が今のところ全て持っているものです。VBAを使用して空の "B"列を持つすべての行を削除する

Sub DeleteAllEmptyBRows() 
Dim lr As Long 
lr = Cells(Rows.Count, "B").End(xlUp).Row 
    For Each cell In Range("B1:B" & lr) 
     If cell.Value = "" Then 
      cell.Row.Delete 
      Exit Sub 
     End If 
    Next cell 
End Sub 

答えて

3

あなたは1つの迅速なラインでこれを行うためにSpecialCellsを使用することができます。私は上記を使用したい

Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

、また、あなた自身の知識のために、ここにあなたがあなたの次にそれを行うことができる方法ですコード:あなたはあなたの中にExit Subを持って

Sub DeleteAllEmptyBRows() 
Dim lr As Long, i& 

lr = Cells(Rows.Count, "B").End(xlUp).Row 

For i = lr To 1 Step -1 'Since you're deleting rows, start at the end, and work upwards 
    If Cells(i, 2).Value = "" Then 
     Cells(i, 2).EntireRow.Delete 
    End If 
Next i 

End Sub 

注意、初めての後に行が削除されます。範囲内のすべてのセルをループしたいので、削除しました。繰り返しますが、これはループなので、上の単純なライナーよりもエラーに時間がかかり、余裕があります。

+1

:あなたが行全体が必要な場合は、ちょうどに変更に

Cells(cell.Row, 2).Delete Shift:=xlUp 

を。これは完璧です、ありがとう! – Rob

1

あなたはいくつかのパラメータ欠けている:私はあなたに感謝するのを忘れて実現

cell.Row.EntireRow.Delete 
関連する問題