Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-如果单元格为空,则删除整行_Vba_Excel_Excel 2007 - Fatal编程技术网

VBA-如果单元格为空,则删除整行

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

上面的代码是我用来查找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 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