2013-05-03 241 views
0

我正在尝试做一些数据预处理。我想写一个宏,删除任何包含任何空单元格的行。Excel删除行,如果单元格包含空单元格

我一直在寻找互联网的帮助上,但他们要么得到我无处或者我不能完全理解的代码

Sub ListWiseDel() 


Dim cell As Range 

For Each cell In Range("A1:U1077") 
If IsEmpty(c.Value) Then 
ActiveCell.EntireRow.Delete 

End If 
Next cell 

End Sub 

我一直想这一点,但我不断收到错误。

+0

所以,你得到了什么错误?我也不是专家,但看起来你没有在任何地方定义'c'。你也许需要使用'cell'而不是'ActiveCell'。 – 2013-05-03 16:03:56

+1

在范围后添加.Cells(“A1:U1077”)并将“c”更改为单元格。另外,将activecell更改为单元 – Marshall 2013-05-03 16:15:33

回答

1

试试这个:

Sub delEmptyRow() 

    Dim col, ligne 
    Dim vide 

    ligne = 10 
    While ligne > 0 
     vide = False 
     col = 1 
     Do While Not vide And col <= 10 
      If IsEmpty(Cells(ligne, col)) Then 
       vide = True 
      End If 
      col = col + 1 
     Loop 
     If vide Then Cells(ligne, 1).EntireRow.Delete 
     ligne = ligne - 1 
    Wend 
End Sub 
+0

只需进行适应性修改:将1077替换为10行,将10替换为21列 – nicolas 2013-05-03 16:15:00

+0

谢谢尼古拉斯,这对我很有帮助。我可以问'vide'变量的作用吗? – 2013-05-03 16:44:17

+0

对不起,法文名 - 读“空”。当读取行单元格“vide”设置为true时,我们知道我们可以停止分析该行,因为它可以被删除。但是我不确定我的解决方案是否更好,您可能会继续编写更少的代码。 – nicolas 2013-05-03 16:56:34

相关问题