2017-05-23 9 views
0

行の対応するBセルが空の場合、行のすべてのエントリを削除するコードを考え出しています。VBA Excel - 特定のセルが空の場合に行のすべてのエントリを削除する

たとえば、B4が空の場合、コードはC4:AU4のすべてのエントリを削除する必要があります。これは、B3から始まるすべての行に対して、MaxRowListの事前定義値に行う必要があります。私がこれまでに出てくる可能性があり

だけの事は

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

である。しかし、これはどのねじアップ配置をワークシートから完全な行を削除します。対応する$ C $:$ AU $の範囲内のエントリを削除するだけで、行は削除されません。

答えて

2

だけ使うIntersectClearContents

Sub tgr() 

    With ActiveWorkbook.ActiveSheet 
     Intersect(.Range("C:AU"), .Columns("B").SpecialCells(xlCellTypeBlanks).EntireRow).ClearContents 
    End With 

End Sub 
1

セルの内容を消去し、削除しないことを前提にしています(セルの内容が下または右に移動します)。 試用

dim ws as worksheet 
set ws = activesheet ' <== Replace with whatever sheet you are working. 
Dim emptyCells As Range, cell As Range 
Set emptyCells = ws.Columns("B:B").SpecialCells(xlCellTypeBlanks) 
For Each cell In emptyCells 
    Dim r As Range 
    Set r = ws.Range("C" & cell.row & ":AE" & cell.row) 
    r.Clear 
Next cell 
1

ループを回避することはできません。愚かな私、もちろんです - 参照してください@tigeravatar。

Sub x() 

Dim r As Range 

For Each r In Columns("B:B").SpecialCells(xlCellTypeBlanks).Offset(, 1) 
    r.Resize(, 45).Clearcontents 
Next r 

End Sub 
関連する問題