2013-06-04 4 views
0

У меня есть рабочий лист excel, и некоторые из ячеек содержат аббревиатуру, такую ​​как SC, FEW, ... затем номер. например SC058 или FEW01, а некоторые из ячеек содержат комбинацию из двух или трех из них, то есть FEW004 SC044. Я хотел бы подставить каждое из аббревиатур независимо от числа, прикрепленного к ним значением. Например, я хочу, чтобы все «FEW004, FEW056, ...» заменялись цифрой «5» и т. Д.Заменить текст в excel

Поскольку база данных огромна, любое предложение о том, как это сделать?

Спасибо

+0

Если аббревиатура не слишком разнообразна (скажем, начинайте только с «S», «F» и «C», затем выполняйте регулярный поиск и заменяйте подстановочными знаками (например, «F *», «S ???? ? ") может быть достаточно. Если нет, можно перейти к более сложному синтаксическому разбору строк или регулярному выражению. – chuff

+0

Это заменит всю ячейку. Например, ячейка, содержащая SCT022 BLK038, будет заменена на одно значение –

+0

Просто пытаюсь Что-то вроде «SC ???» или «FEW ???» не заменило бы целую ячейку, но опять же у вас может быть слишком много возможных альфа-кодов, с которыми можно справиться вручную. regex-подход? – chuff

ответ

0

Я сделал быстрый образец, который будет делать один тип замещения (ваш пример изменения ничего с «FEW» до «5»), мы надеемся, что некоторые используют:

Sub substitute_abb() 

theData = ActiveCell.Value 
theNewData = "" 

theDataArray = Split(theData, " ") 

For Each x In theDataArray 
    If InStr(x, "FEW") Then 
     newSegment = "5" 
     Else 
     newSegment = x 
    End If 
    If theNewData = "" Then 
     theNewData = newSegment 
     Else 
     theNewData = theNewData & " " & newSegment 
    End If 
Next 

ActiveCell.Value = theNewData 

End Sub 

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

+0

Хорошо работает –

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