VBA Excel Makro komplette Zeile löschen,wenn bestimmte Wörter enthalten
Dim arrSuchbegriff, i&
arrSuchbegriff = Array("Suchbegriff1", "Suchbegriff2", "", "SB3")
For i = LBound(arrSuchbegriff) To UBound(arrSuchbegriff)
ActiveSheet.Columns("A").Replace arrSuchbegriff(i), "###@@@###", xlPart, MatchCase:=False
Next i
ActiveSheet.Columns("A").AutoFilter Field:=1, Criteria1:="*###@@@###*"
ActiveSheet.Cells.Delete
Das Makro klappt, allerdings löscht es mir nur die Zelle in der der Begriff enthalten ist, und nicht die komplette Zeile. Kann jemand helfen? Viele Grüße
4 Antworten
Hab das lang nicht mehr gemacht, aber eine Array-Variable muss m.Erinnerung nach mit Variablenname(), also mit Klammern, angemeldet werden.
danke, so langsam kommt die Erinnerung wieder.
und wenn man sie nur als Var() anmeldet, dann muss/kann man später mit
redim
die Dimensionen weiterhin als Zahlen oder durch bis dahin berechnete andere Variablen einstellen.
also bei mir klappts und er löscht auch die gesamte zeile. allerdings auch immer die 1. zeile. weil: er löscht alle zeilen die beim autofilter stehen bleiben. die 1. zeile dient allerdings als header zeile, also als träger der drop-down-listen.
trick: am anfang noch eine leere zeile mit
Cells(1, 1).EntireRow.Insert (xlShiftDown)
einfügen
gruß, max.
Meinst du jetzt die allererste Zeile A1? Dort steht bei mir nämlich nichts drin, dass ich löschen möchte, eher weiter unten in der Tabelle. in Spalte A und B stehen Wörter, die ich nicht brauche und dadurch die ganze Zeile entfernen möchte. Irgendwie klappt das nicht :(
Viele Grüße
du testest nur die spalte A auf die suchbegriffe.
also:
For i = LBound(arrSuchbegriff) To UBound(arrSuchbegriff)
ActiveSheet.Columns("A").Replace arrSuchbegriff(i), "###@@@###", xlPart, MatchCase:=False
Next i
ActiveSheet.Columns("A").AutoFilter Field:=1, Criteria1:="*###@@@###*"
nochmals mit "B" wiederholen.
ich seh grad weiter oben sprichst du von allen (Spalten). dann halt eine schleife über die fraglichen spalten
gruß, max.
autofilter in VBA ist mir etwas suspekt. aber wenns geht: versuchs mal mit
activesheet.rows.delete
und zum schluss den autofilter wieder ausschalten.
gruß, max
Das habe ich versucht, geht auch nicht. Aber mein Fehler liegt an der Spalte "A", wie kann ich mich auf alle beziehen?
Versuche mal
ActiveSheet.Cells.EntireRow.Delete
Ich glaube es funktioniert nicht , da ich Spalte A angegeben habe. Wie kann ich mich auf alle Spalten beziehen? Vielen Dank :)
Das bedeutet alle Zeilen, ich meine die columns :)
Ja, stimmt.
Beispiel 1
DIM Variab1(100)
Beispiel 2
DIM Variab2 (100,10)
Beispiel 3
DIM Variab3 (100,10,10)
Mit diesen dreifach indizierten Variablen habe ich - früher - viel und gerne gearbeitet.
Gruß aus Berlin