Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile löschen, wenn Werte vorkommen

Zeile löschen, wenn Werte vorkommen
17.09.2004 10:58:29
Melanie
Hallo zusammen!
Zu dem o.g. Thema habe ich schon einen Beitrag in der Recherche gefunden, den ich mir entsprechend umarbeiten konnte. Ich habe aber noch eine Verständnisfrage - sicher könnt ihr mir helfen: Was "macht" das Application.Match? Und was steuere ich mit der "0" am Ende der Zeile?

Sub GesamtbestandSonderlägerLöschen()
Dim irow As Integer, irowL As Integer
Dim var As Variant, var1 As Variant, var2 As Variant
irowL = Cells(Rows.Count, 1).End(xlUp).Row
For irow = irowL To 1 Step -1
var = Application.Match("*SOLI*", Rows(irow), 0)
var1 = Application.Match("*SOKD*", Rows(irow), 0)
var2 = Application.Match("*VBR7*", Rows(irow), 0) 'ca. 3 weitere "var.." folgen
If Not IsError(var) Then
Rows(irow).Delete
Else
If Not IsError(var1) Then
Rows(irow).Delete
Else
If Not IsError(var2) Then
Rows(irow).Delete
End If
End If
End If
Next irow
End Sub

Und zum Schluss noch eine weitere Frage: Kann man das ganze noch "schlanker" gestalten ? Die Datei hat ca. 30.000 Zeilen und ich denke, wenn ich den Praxistest mache, dann dauert das schon seine Zeit. Natürlich werde ich vorher das Screenupdating ausschalten... Aber gibt es noch was, was ich verbessern kann?
Gruß,
Melanie

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen, wenn Werte vorkommen
Reinhard
Hi Melanie,
zu Match lies in der VBA-Hilfe nach, da wird auch die 0 erläutert.
Ungetestet:

Sub GesamtbestandSonderlägerLöschen()
Dim irow As Long
On Error Resume Next
For irow = Cells(65536, 1).End(xlUp).Row To 1 Step -1
If Application.Match("*SOLI*", Rows(irow), 0) <> 0 Or _
Application.Match("*SOKD*", Rows(irow), 0) <> 0 Or _
Application.Match("*VBR7*", Rows(irow), 0) <> 0 Then Rows(irow).Delete
Next irow
End Sub

Gruß
Reinhard
AW: Zeile löschen, wenn Werte vorkommen
Melanie
Hallo Reinhard!
Vielen Dank! Ich werde das direkt mal testen!
Lieben Gruß und danke für die Unterstützung!
Melanie
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige