我需要删除所有不包含值的行。如果某行包含公式或格式但没有值,则将其删除
以下工作仅适用于没有值和公式的行
Sub test()
[a:a].SpecialCells(xlBlanks).EntireRow.Delete
End Sub
但是,如果A
单元格包含公式,则上述内容不会删除行。我该如何改进呢?
答案 0 :(得分:1)
试试这个:
Sub CleanupCrew()
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
'Replace 1 with either the number of your sheet or "itsName"
last = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
For x = last to 1 Step -1
If ws.Cells(x, 1) = "" Or ws.Cells(x, 1).Formula <> "" Then
ws.Rows(x).Delete
End If
Next x
End Sub
它将循环遍历所有行(从最后一个开始)并删除所有那些没有值或A列中的公式。希望这是你要找的。如果没有,请告诉我,我会提供更多支持!
答案 1 :(得分:1)
您可以在范围对象上使用方法HasFormula
:
Range.HasFormula
如果范围包含公式,将返回true,否则返回false。
答案 2 :(得分:1)
也许是这样的事情:
Sheet1.AutoFilterMode = False
[a:a].AutoFilter 1, "="
[a:a].Resize(Rows.Count - 1).Offset(1, 0).SpecialCells( _
xlCellTypeVisible).EntireRow.Delete
Sheet1.AutoFilterMode = False
Sheet1
是您正在处理的工作表代号
所以基本上,这会过滤所有Blanks
并删除它,无论它是No value
空白还是Formula
空白(例如=“”)