使用“仅公式”删除整行的VBA /宏

时间:2016-04-01 08:18:01

标签: excel vba macros formula

如何删除A列中仅包含公式的所有行?我需要删除它,以便在选择范围或录制宏时没有问题。

我试过了:

 Selection.AutoFilter
    ActiveSheet.Range("$A:$L").AutoFilter Field:=1, Criteria1:="#REF!"
    Rows("720:720").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.delete Shift:=xlUp
    ActiveWindow.SmallScroll Down:=-27
    ActiveSheet.Range("$A$1:$L$719").AutoFilter Field:=1

    Dim c As Range
    Dim SrchRng

    Set SrchRng = ActiveSheet.Range("A1", ActiveSheet.Range("A1000000").End(xlUp))
    Do
        Set c = SrchRng.Find("=+LEFT(#REF!,2)", LookIn:=xlValues)
        If Not c Is Nothing Then c.EntireRow.delete
    Loop While Not c Is Nothing

但没有任何作用。我尝试删除所有包含#REF或公式本身"=+LEFT(#REF!,2)"的行,但仍然没有运气。

我需要删除只有公式的所有/整行。这些公式位于Column A

2 个答案:

答案 0 :(得分:1)

请参阅以下代码

Sub DeleteFormulaCells()
    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To lastrow
        If Range("A" & i).HasFormula() = True Then
            Rows(i).EntireRow.Delete
            lastrow = lastrow - 1
        End If
    Next i
End Sub

答案 1 :(得分:1)

试试这个

Sub DeleteRowsWithFormulas()
ActiveSheet.Columns("A").SpecialCells(xlCellTypeFormulas).EntireRow.Delete
End Sub