gar nicht. das muß ganz neu. weil
1. du den Spaltenbereich eingrenzen mußt, damit nicht die 16 tausend Spalten gelöscht werden, die deinem Kriterium nicht entsprechen.
2. das "finden" nicht einfach mit dem "nichtfinden" ausgetauscht werden kann.
das makro sammelt erstmal die Begriffe in ein Dictionaryobject dieses kann dann abgefragt werden ob ein Wert sich darin befindet oder nicht. dann wird ein Bereich(rngUeberschriften) festgelegt, der durchsucht werden soll. dann wird dieser Bereich Zelle für Zelle durchlaufen und geprüft ob sich der Wert im Dictionary befindet. wenn nicht, wird ein weiterer Bereich(rngdel) mit den Zellen gefüllt nach der Schleife wird der Bereich(rngDel) auf die ganze Spalte erweitert und gelöscht.
Sub Ueberfluessige_weg()
Dim dic As Object
Dim rngUeberschriften As Range, rngCell As Range, rngDel As Range
Set dic = CreateObject("Scripting.dictionary")
dic.Add "Betrag", 1
dic.Add "Valutadatum", 1
Set rngUeberschriften = Intersect(ActiveSheet.UsedRange, Rows(1))
For Each rngCell In rngUeberschriften.Cells
If Not dic.Exists(rngCell.Value) Then
If rngDel Is Nothing Then
Set rngDel = rngCell
Else
Set rngDel = Union(rngDel, rngCell)
End If
End If
Next
If Not rngDel Is Nothing Then rngDel.EntireColumn.Delete
End Sub
|