1.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe ein Problem mit einem VBA Modul.
Ich habe eine Excel-Datei in der steht html-Quelltext.
Ich möchte nun alle Zeilen löschen in denen NICHT der Textteil '<option value = ' vorkommt.
Mein Script

Sub zeilen_loeschen()
Range("A1:A1400").Select
For Each cell In Selection
If Not cell.Value Like "*<option value = *" Then cell.EntireRow.Delete
Next
End Sub


macht dies, allerdings muss ich es 10x hintereinander ausführen, damit wirklich nur noch die gewünschten Zeilen stehen bleiben. Weiß jemand wieso das so ist? Vielen Dank schon vorab!

1 Antwort

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hans,

das liegt meines Erachtens nach an der Art der Schleife, die Du verwendest, da durch das Lsöchen immer iene Zeile übersprungen wird. Mach das mal mit einer For-/Next-Schleife und gehe von 400 immer einen Schritt rückwärts. Das Makro dazu müsste dann wie folgt aussehen.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub zeilen_loeschen()
Dim intRow As Integer
Application.ScreenUpdating = False
For intRow = 400 To 1 Step -1
If Not Cells(intRow, 1).Value Like "*<option value = *" Then Rows(intRow).EntireRow.Delete
Next
End Sub


MfG,
Oliver
[sup]Jeder macht was er will, keiner macht was er soll, aber alle machen mit.[/sup]
...