2016-04-01 12 views
0

Yalnızca A sütununda formül içeren tüm satırları nasıl silebilirim? Aralığı seçerken veya makro kaydederken sorun olmayacak şekilde onu silmem gerek.VBA/Makronun tümünü "yalnızca formül" ile silmek için

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 

ve:

denedim

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 

ama hiçbir şey çalışır. #REF veya formülü "=+LEFT(#REF!,2)" olan tüm satırları silmeye çalıştım ama yine de şans yok.

Yalnızca formülü olan tüm satırları silmem gerekiyor. Bu formüller Column A

+0

kullanım ISFORMULA() işlevini –

cevap

1

aşağıda kod

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 
+0

deneyin bakın bulunmaktadır. Teşekkürler! – markerbean

1

bana benim sorun çözüldü yardımcı bu

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