2017-09-15 160 views
1

我试图根据D列中的单元格值是否为NULL来删除整行。我的整个代码到目前为止是:如何根据VBA中的空单元格值删除行

Sub DeleteNULL() 

Dim i As Long 

For i = 2 To 119713 
     If IsEmpty(Range("Di")) = True Then 
      Rows([i]).EntireRow.Delete 

     Else 
      If IsEmpty(Range("Di")) = False Then 
      Next i 

     End If 


End Sub 

我不断收到编译错误,要么如果没有其他人或没有对于接下来,我应该怎么解决这个问题?

在此先感谢。

+0

您需要循环向后或你将不得不与它跳过行的问题。 – braX

+0

https://stackoverflow.com/questions/30462449/excel-vba-find-empty-cell-and-delete-the-row?rq=1 – braX

回答

1

有几件事情:

很多语法的
  1. 安置关闭。
  2. 添加或删除行时,您需要根据Excel处理这些事件的方式向后循环。

见下面的代码:

Sub DeleteNULL() 

    Dim i As Long 

    For i = 119713 To 2 Step -1 
     If IsEmpty(Range("D" & i)) Then Rows([i]).EntireRow.Delete 
    Next i 

End Sub 
+0

不应该Endif和Next必须处于交换位置。 –

+0

@AnkitBajpai - 修正。没有看到我的错字。谢谢。是你压低了吗? –

+0

从不。我的拇指规则,如果你不能得票,Never Downvote others。 –

相关问题