2014-09-04 96 views
0

我正在尝试整理需要转换为不同格式的清单。 想知道,有没有办法找到一组空白单元格并使用VBA删除它们?堆叠时删除分组的空白单元格

的文件看起来是这样的:

name 
address 
address 
region 
-blank line- 
-blank line- 
-blank line- 
Name 
Address 
Address 
Region 
-blank line etc 

我想什么东西删除了分组的空白单元格。我有的问题是有时地址栏中的一个是空白的,(一个空白行),所以我不能只使用Go to > Special...

我会喜欢的是,如果我可以制定出如何让VBA运行列,挑选一组3个或更多的空白单元格,并删除整个行。 这可能吗?

干杯,奈杰尔。

回答

0

你总是可以做这样的事情:

Sub DeleteBlanks() 
    Dim TotalRows As Long 
    Dim i As Long 
    Dim j As Long 

    TotalRows = Rows(Rows.Count).End(xlUp).Row 

    For i = TotalRows To 2 Step -1 
     'Check if there is more than one blank cell 
     If Cells(i, 1).Value = "" And Cells(i - 1, 1).Value = "" Then 

      'Count the number of cells that are blank 
      Do While Cells(i - j, 1).Value = "" 
      If i - j <= 1 Then 
       Exit Do 
      End If 
       j = j + 1 
      Loop 

      'Delete group of blank of cells 
      If i - j <= 1 Then 
       Rows(i & ":" & i - j).Delete 
      Else 
       Rows(i & ":" & i - j + 1).Delete 
      End If 

      j = 0 
     End If 
    Next 
End Sub 
+0

感谢您的帮助。 Doesent似乎工作。我可以得到上述只在列D上运行吗? – 2014-09-04 08:50:04

+0

它适用于列A并删除整行。你可以很容易地改变它。只需将单元格中的1修改为正确的列号,将总行数更改为检查列D而不是A,并且可以将rows.delete更改为cells.delete – Ripster 2014-09-04 09:14:14