2016-07-18 7 views
0

ich eine lange Kolonne von Strings haben, Beispiel:Zeile löschen Wenn Zelle enthält Text Nach dem Zweiten Hyphen

GREENCAT-01-AB-01 
BLUEDOG-800-CC-1 
BLUECAT-1 
GREENDOG-804 
BLACKSHEEP-58 
PINKMOUSE-900-AB 

Gewünschtes Ergebnis:

BLUECAT-1 
GREENDOG-804 
BLACKSHEEP-58 

Ich versuche, die Suchfunktion verwenden Sie finden Zeichenfolge, die einen zweiten Bindestrich enthält und diese Zeile löscht. Ich habe "Wild Cards" verwendet, aber sie müssen spezifisch sein und einige Strings haben nur 1 oder 2 Zahlen nach dem ersten Bindestrich, während andere 3 oder 4 haben.

Hilfe?

Set SrchRng = WS.Range("A1:A" & LastRow) 
    Do 
    Set c = SrchRng.Find(What:="-***-", LookAt:=xlPart) 
     If Not c Is Nothing Then c.EntireRow.Delete 
    Loop While Not c Is Nothing 
+0

Für die Zukunft wird ein Sternchen Platzhalter eine beliebige Anzahl von Zeichen, wobei als Fragezeichen entspricht nur einem Zeichen. Das heißt, wenn Sie den Stern verwenden, brauchen Sie sich keine Gedanken darüber zu machen, wie viele Zeichen es geben könnte :) – StevenWalker

Antwort

2

einfach ein „*“ hinzufügen sowohl am Anfang als auch am Ende des „Was“ Parameter

Set SrchRng = ws.Range("A1:A" & lastRow) 
Do 
    Set c = SrchRng.Find(What:="*-*-*", LookAt:=xlPart) 
    If Not c Is Nothing Then c.EntireRow.Delete 
Loop While Not c Is Nothing 
+0

Ich habe gelesen, dass alle in derselben Zelle waren. Gute Arbeit, die ganze Frage zu lesen. –

+0

vereinbart. Aufmerksamkeit fürs Detail. +1 – cyboashu

+0

danke @ScottCraner, eigentlich, dass OP war das nicht "sofort" – user3598756