2016-07-18 10 views
0

У меня есть длинный столбец строк, пример:Delete Row Если ячейка содержит текст После Второго дефиса

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

Желаемая Результат:

BLUECAT-1 
GREENDOG-804 
BLACKSHEEP-58 

Я пытаюсь использовать функцию поиска, чтобы найти любого строка, которая имеет второй дефис и удаляет эту строку. Я использовал «дикие карты», но они должны быть конкретными, и некоторые строки имеют только 1 или 2 числа после первого дефиса, в то время как другие имеют 3 или 4.

Помощь?

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

Для дальнейшего использования, звездочка джокер совпадает с любым количеством символов, где в качестве вопросительный знак соответствует только одному символу. Это означает, что при использовании звездочки вам не нужно беспокоиться о том, сколько символов может быть :) – StevenWalker

ответ

2

просто добавить «*» как в начале и в конце вашего «Что» параметр

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

Я читал, что все они были в одной и той же ячейке. Хорошая работа, читая весь вопрос. –

+0

согласился. Внимание к детали. +1 – cyboashu

+0

спасибо @ScottCraner, на самом деле, что OP не был таким «немедленным» – user3598756

Смежные вопросы