For Each mit Delete
Philipp
mein folgendes Makro erfüllt seinen Zweck, jedoch empfinde ich die Sprungmarke als Schönheitsfehler, kann man bei For Each Schleifen und löschen des Elements dafür sorgen, dass er nicht immer ein Element überspringt?
Hier das Beispiel:
Sub LoescheSpalteWenn()
Dim Spalte as Object
Anfang:
For Each Spalte In ThisWorkbook.Sheets("Sheet1").Columns
If Cells(1, Spalte.Address).Value = "" Then Exit For
If Cells(1, Spalte.Address).Value "Wert1" And Cells(1, Spalte.Address).Value "Wert2" _
Then
Spalte.Delete
GoTo Anfang
End If
Next
End Sub
Wenn ich nicht jedes Mal nach Löschen einer Spalte per Sprungmarke die Schleife erneut durchlaufen lasse, dann überspringt er die nächste Spalte, da ja die Spalte eins nach links rückt.Mit ist klar, dass sich das leicht mit einer "For i = ..." Schleife realisieren lassen würde, ich möchte aber bewusst objektorientiert mit For Each arbeiten.
Grüße und besten Dank für Tipps im Voraus,
Philipp