2013-09-17 3 views
1

У меня есть множество строк (100K +) для поиска и изменения содержимого.Поиск и замена случайного текста ячейки поначалу:

Например клетки содержат текст, как похож DGC9610411: DB: 10: 82

Все этот текст можно изменить в строке, за исключением того факта, что: значит, что-то для меня.

В этом и любой другой строке, мне нужно удалить первый: и весь текст после того, как так, что клетка будет выглядеть следующим образом DGC9610411

Далее я буду добавлять содержимое другой ячейки до конца. Я думаю, что это будет легкий шаг, и я, скорее всего, придумаю это без особых усилий.

У меня есть этот код в цикле while для каждой строки. поэтому код смотрит на одну строку за раз.

Я искал, но у каждого, похоже, есть другой набор потребностей.

ответ

3

Просто используйте Найти и заменить, нет необходимости в VBA или формул.

  1. Выберите столбец, содержащий данные, которые нужно изменить
  2. Нажмите Ctrlч открыть Найти и заменить диалог.
  3. В "Найти то, что:" поле, тип :*
  4. В "Заменить на:" поле, оставьте его пустым
  5. Нажмите Заменить все

tigeravatar Find and Replace

EDIT : Если это должен быть VBA, этот простой макрос выполнит то же самое. Обязательно измените значение A на фактическую букву столбца.

Sub tgr() 

    Columns("A").Replace ":*", "" 

End Sub 

EDIT: По запросу я добавив формулу решения. В ячейке B1 и скопировано:

=LEFT(A1,FIND(":",A1&":")-1) 
+0

Очень приятно! Я не понял, что метод Replace поддерживает подстановочные знаки. –

+0

Да, мог бы сделать то же самое в VBA, если вы действительно хотели: 'Столбцы (« A »). Заменить«: * »,« » – tigeravatar

+0

Мне пришлось использовать VBA, поскольку есть множество других команд, которые я используя эти данные. Я проверяю, что это правильный ответ, поскольку я использовал ваши второй столбцы предложений («А»). Заменить «: *», «» отлично работает. СПАСИБО! –

0

Попробуйте этот небольшой макрос:

Sub colonoscopy() 
    Dim c As String 
    Dim r As Range, I As Long 
    For Each r In ActiveSheet.UsedRange 
     v = r.Value 
     I = InStr(1, v, ":") 
     If I > 0 Then 
      r.Value = Mid(v, 1, I - 1) 
     End If 
    Next r 
End Sub 
Смежные вопросы