我想删除 C 列中不包含值的所有行。我该怎么做?
答案1
如果单元格确实是空白的,你可以使用以下方法快速完成此操作SpecialCells
手动的
- 选择 C 列
- 按
F5
,然后Special
Blanks
然后检查OK
(参见底部图片中的这一步)- 删除现在选定的行(例如,在选择中单击鼠标右键 >删除单元格...>整行或通过功能区(见第二张屏幕截图)
虚拟专用网络
Sub QuickCull()
On Error Resume Next
Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub
答案2
这是一个简单的手动方法
- 将应用
Auto Filter
到您的工作表 C
按空白列进行筛选- 选择所有可见行
- 删除行
- 移除过滤器
如果需要,可以使用 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