2017-03-16 59 views
1

我在计算如何删除整行(如果该行中的单元格等于)时遇到问题。根据单元值删除整行

这是我写的,关于如何使它工作的任何想法?

Dim rng As Range, rrng As Range 
    Set rng = Range("A1:E1") 
    Set rng = Range(rng, rng.End(xlDown)) 
    For Each rrng In rng 
    If rrng.Value = 0 Then .EntireRow.Delete 
Next rrng 
+2

这是您的上一个问题的后续行动,您将所有空白转换为零? – user3598756

回答

1

我做了一些细微的修改你的代码,我认为现在是你想要它做的事情。

Dim rng As Range, rrng As Range 
Set rng = Sheet1.Range("A1:E1") 
Set rng = Range(rng, rng.End(xlDown)) 
For Each rrng In rng 
If rrng.Value = 0 Then Sheet1.Rows(rrng.Row).Delete 
Next rrng 
0

要删除空行,请使用反向循环...

Option Explicit 
Public Sub Example() 
    Dim Row&, i& 

    i = Cells.SpecialCells(xlCellTypeLastCell).Row 

    For Row = i To 1 Step -1 
     Debug.Print Row ' Immediate Window 
     If Application.CountA(Rows(Row)) = 0 Then 
      i = i - 1 

      If IsEmpty(Cells(Row, 1)) Then 
       Rows(Row).Delete 
      End If 
     End If 
    Next 
End Sub 
1

这是我的解决方案。它总结了所有值行并删除它时,和是0

Sub deleting_empty_rows() 

Dim rng, rrng, rcell As Range 
Dim i, j As Long 

Set rng = Range("A1:E1") 
Set rng = Range(rng, rng.End(xlDown)) 

For j = rng.Rows.Count To 1 Step -1 

    Set rrng = rng.Rows(j) 

    i = 0 

    For Each rcell In rrng.Cells 
     i = i + rcell.Value 
    Next rcell 

    If i = 0 Then rrng.EntireRow.Delete 

Next j 

End Sub