ich doktore nun schon seit ein paar Stunden an einem (eigentlich recht simplen) Makro herum. Und zwar hab ich ein recht großen Tabellenblatt (3000 Zeilen, 500 Spalten), welches entweder Werte anzeigt oder #NV über IstFehler ausblendet. Nun möchte ich genau jene Zellen löschen (genauer gesagt, nur den Inhalt - also die Formel), welche keine Werte anzeigen, in denen also implizit ein #NV steht.
Ich hab das bislang über zwei (die zweite Version ist die auskommentierte for-each-Schleife) verschiedene Herangehensweisen versucht. Vorweg: ich hab die Makro "im Kleinen" ausprobiert, dort haben sie wunderbar funktioniert.
Sub Formula_delete_2()
Dim LastRow As Integer
Dim LastCol As Integer
Dim cell As Object
With Worksheets("Mappe1")
Application.DisplayAlerts = False
Application.ScreenUpdating = False
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
LastCol = Cells(3, Columns.Count).End(xlToLeft).Column
'For Each cell In Range(Cells(4, 2), Cells(LastRow, LastCol))
' If cell.Value = "" And Not IsNumeric(cell) Then
' cell.Clear
' End If
'Next cell
For Row = 4 To LastRow
For Col = 2 To LastCol
If Cells(Row, Col).Value = "" And Not IsNumeric(Cells(Row, Col)) Then
Cells(Row, Col).ClearContents
End If
Next Col
Next Row
End With
End Sub
Führe ich das Makro in der obigen Version aus, bricht er irgendwann ab und meint dass If Cells(Row, Col).Value = "" And Not IsNumeric(Cells(Row, Col)) Then nicht kompatibel sei. Komischerweise werden die ersten paar Spalten allerdings ordnungsgemäß durchlaufen und löscht dort auch betreffende Zellen.
Für ich das Makro mit der for-each-Schlweife aus, hängt er sich auf. Sprich es passiert gar nicht, sodass ich nach ner halben Stunde die Reißleine ziehen muss und Excel über den Task-Manager schließe.
Hat vielleicht einer eine Idee, was an den Codes falsch sein könnte oder hat mir vielleicht eine ganz andere Herangehensweise?
Vielen Dank und beste Grüße!