Excel:如果某列中的单元格为空,是否删除行?

Excel:如果某列中的单元格为空,是否删除行?

我想删除 C 列中不包含值的所有行。我该怎么做?

答案1

如果单元格确实是空白的,你可以使用以下方法快速完成此操作SpecialCells

手动的

  • 选择 C ​​列
  • F5,然后Special
  • Blanks然后检查OK(参见底部图片中的这一步)
  • 删除现在选定的行(例如,在选择中单击鼠标右键 >删除单元格...>整行或通过功能区(见第二张屏幕截图)

虚拟专用网络

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

屏幕截图显示了“转到特殊菜单”->“空白”菜单 屏幕截图显示了如何使用功能区删除所选内容中的整行

答案2

这是一个简单的手动方法

  1. 将应用Auto Filter到您的工作表
  2. C按空白列进行筛选
  3. 选择所有可见行
  4. 删除行
  5. 移除过滤器

如果需要,可以使用 VBA 自动执行此过程。尝试运行宏录制器以开始

答案3

我认为最简单的事情就是假设您在其他单元格中没有一堆其他公式,只按 C 列对所有内容进行排序,然后删除 C 列为空白的所有行(排序函数会将 C 列的空白值放在文件的顶部)。

总之:

  • 单击标有“1”的单元格上方和标有“A”的单元格左侧的折叠纸单元格(突出显示全部)
  • 点击数据,然后排序
  • 按 C 列排序,将最小值排在第一位
  • 只需突出显示行,直到找到第一行,其中包含 C 列的值,然后删除您突出显示的所有内容

答案4

您可以将此代码放入 Sheet Module 中(右键单击 Sheet Tab 并选择“查看代码”):

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub

相关内容