Заменить текст в excel

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

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

Спасибо


person H_A    schedule 04.06.2013    source источник
comment
Если аббревиатура не слишком разнообразна (скажем, начать только с S, F и C, то может быть достаточно обычного поиска и замены подстановочными знаками (например, F*, S?????). Если нет, можно перейти к более сложный синтаксический анализ строк или подход с регулярными выражениями.   -  person chuff    schedule 05.06.2013
comment
Это заменит всю ячейку. Например, ячейка, содержащая SCT022 BLK038, будет заменена одним значением.   -  person H_A    schedule 05.06.2013
comment
Просто пытаюсь выяснить ваши данные. Что-то вроде СК??? или МАЛО??? не заменит всю ячейку, но опять же у вас может быть слишком много возможных альфа-кодов, с которыми можно работать вручную. Вы заинтересованы в подходе регулярных выражений?   -  person chuff    schedule 05.06.2013


Ответы (1)


Я сделал быстрый пример, который будет выполнять один тип замены (ваш пример изменения чего-либо с «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

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

person David    schedule 04.06.2013