VBA-如果单元格为空,则删除整行
上面的代码是我用来查找AG列中的空白单元格的代码。然而,列AG基于If公式。这就是我返回“无单元格空白”错误的原因吗?试试这个VBA-如果单元格为空,则删除整行,vba,excel,excel-2007,Vba,Excel,Excel 2007,上面的代码是我用来查找AG列中的空白单元格的代码。然而,列AG基于If公式。这就是我返回“无单元格空白”错误的原因吗?试试这个 shMassPrelim.Range("AG2:AG" & lr).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 这将过滤和删除空白行 Sub misc() Dim cell As Range Dim EMPTY_CELL As String EMPTY_CELL = "" For Each c
shMassPrelim.Range("AG2:AG" & lr).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
这将过滤和删除空白行
Sub misc()
Dim cell As Range
Dim EMPTY_CELL As String
EMPTY_CELL = ""
For Each cell In Selection
If Trim(cell.Value) = EMPTY_CELL Then
cell.EntireRow.Delete
End If
Next
End Sub
如果他们有公式,那么他们不是空的!我将代码更改为,从中提取公式值,并将它们作为值复制粘贴到列AG中。现在我的代码是
shMassPrelim.Column(“AG”).SpecialCells(xlBlanks).EntireRow.Delete
,我仍然收到一个错误,没有找到空白单元格,但有空白单元格。“
仍然是一个值,表示该单元格不是空白的。要么你需要发布代码的其余部分来查看发生了什么,要么你需要使用Range.AutoFilter()
方法。是的,我刚刚使用了AutoFilter方法。选择不错,比SpecialCells()
更灵活,比循环快得多。
Sub DeleteStuff()
Dim Rws As Long, Rng As Range
Rws = Cells(Rows.Count, "AG").End(xlUp).Row
Set Rng = Range(Cells(2, "AG"), Cells(Rws, "AG"))
Application.ScreenUpdating = 0
Range("AG:AG").AutoFilter Field:=1, Criteria1:="="
Rng.SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.AutoFilterMode = 0
End Sub