AW: Wie mehr als 15 Spalten?
06.05.2014 13:43:54
Daniel
Hi
du gibtst bei der Match-Funktion den 3. Parameter nicht an.
damit verwendest du die Match-Funktion mit 3. Parameter = 1, weil VBA hier die 1 als Wert ergänzt, wenn du keine Angaben machst.
dies hat für dich folgende konsequenzen:
a) die Liste muss aufsteigend sortiet sein, damit die Funktion ein sinnvolles Ergebnis liefert
b) wird der Suchbegriff nicht gefunden, so erzeugt die Funktion keinen Fehler, sondern es wird der nächstkleinere Wert als Ergebnis verwendet.
du solltest hier die Match-Funktion mit 3. Parameter = 0 verwenden, denn dann dürfen die die Werte unsortiert sein und du bekommst deinen Fehler, wenn der Suchwert nicht vorhanden ist:
lCol = Application.Match(cTitelZeile, Rows(1), 0)
insgesamt finde ich deinen Code etwas aufwendig.
das geht auch einfacher:
With ActiveSheet
on Error Resume Next
.Rows(1).Find(What:=cTitelZeile, lookat:=xlwhole).EntireColumn.Replace cFind, cReplace, xlwhole
if err 0 Then MsgBox "Keine Spalte ....", vbExclamation, "Abbruch"
On Error Goto 0
End With
Gruß Daniel