ich habe ein Problem mit der folgenden Schlaufe:
und zwar möchte ich die Zeilen, die nicht mit Kill* oder mit Init* beginnen, löschen. Das Makro löscht mir aber alle (wie kann man Wildcards eingeben in dieser If-Abfrage?
Grüsse
OliverG
ich habe ein Problem mit der folgenden Schlaufe:
und zwar möchte ich die Zeilen, die nicht mit Kill* oder mit Init* beginnen, löschen. Das Makro löscht mir aber alle (wie kann man Wildcards eingeben in dieser If-Abfrage?
Grüsse
OliverG
Nike
testet auf GENAU Init und GENAU Kill
If Left(.Cells(lngOG, 3).Value,4) <> "Init" And Left(.Cells(lngOG, 3).Value,4)<> "Kill" Then
.Cells(lngOG, 3).EntireRow.Delete
End If
Anders formuliert.
Wenn die erste 4 Stellen Init oder Kill sind- lass die Zeile allein, ansonsten löschen. (Ist das wirklich was Du willst?)
Sub test()
Dim lngOG As Long, lngOG1 As Long
With wksTime
lngOG1 = .Cells(Rows.Count, 3).End(xlUp).Row
lngOG = lngOG1
Do
If .Cells(lngOG, 3).Value <> "Init*" And .Cells(lngOG, 3).Value <> "Kill*" Then
.Cells(lngOG, 3).EntireRow.Delete
lngOG = lngOG1 - 1
Else
lngOG = lngOG - 1
End If
Loop Until lngOG = 1
End With
End Sub
sonst bleibt er immer ganz unten stehen.
aber es geht leider trotzdem nicht. das problem ist meiner meinung nach, dass er <> "Init*" nicht als "beginnt mit Init" sieht, sondern als fixer text "Init*".
grüsse
Oliver
wegen:
>testet auf GENAU Init und GENAU Kill
ich hatte eigentlich den wildcard <> "Init*" drin, aber irrtümlich im forum nicht erwähnt.
>(Ist das wirklich was Du willst?)
Ja, genau das.
vielen dank
Dann solltest du wohl eher instr() oder left() nutzen...
Bye
Nike