2016-12-27 3 views
0

Ich verwende diesen vba Code, um #DIV/0! Fehler zu entfernen.Entfernen Wenn Fehler über VBA

Sub IFERROR() 
Dim frange As Range, c As Range, ws As Worksheet 
For Each ws In Worksheets 
    On Error Resume Next 
    Set frange = ws.Cells.SpecialCells(xlCellTypeFormulas) 
    On Error GoTo 0 
    If Not frange Is Nothing Then 
     For Each c In frange 
      c.Formula = "=IFERROR(" & Right(c.Formula, Len(c.Formula) - 1) & ","""")" 
     Next c 
    End If 
    Set frange = Nothing 
Next ws 
End Sub 

Der obige Code bewirbt IFERROR Formel in allen Zellen, kann mir jemand helfen, diese VBA Code nur Zellen anzuwenden, die #DIV/0!

Antwort

0

zeigt Sieht aus wie CVErr(xlErrDiv0) ist das, was Sie suchen. Sie müssen zuerst prüfen, ob die Zelle einen Fehler enthält, weil der Vergleich von CVErr(xlErrDiv0) mit einem Zellenwert, der keinen Fehler enthält, zu einem Fehler führt.

Sub IFERROR() 
    Dim ws As Worksheet 
    For Each ws In Worksheets 
     On Error Resume Next 
     Set frange = ws.Cells.SpecialCells(xlCellTypeFormulas) 
     On Error GoTo 0 
     If Not frange Is Nothing Then 
      For Each c In frange 
       If IsError(c.Value) Then 
        If c.Value = CVErr(xlErrDiv0) Then 
         c.Formula = "=IFERROR(" & Right(c.Formula, Len(c.Formula) - 1) & ","""")" 
        End If 
       End If 
      Next c 
     End If 
     Set frange = Nothing 
    Next ws 
End Sub 
+0

Vielen Dank. Funktioniert gut .............. –

+0

Nach dem Ausführen des oben genannten Codes in einigen Zellen bekomme ich diesen Fehler #WERT !, wie Sie dies entfernen –

+0

Vielleicht ändern 'c.Value = CVErr (xlErrDiv0) Oder c.Value = CVErr (xlErrValue) ' – Limak

Verwandte Themen