2014-02-02 2 views
0

У меня есть несколько сотен файлов excel, содержащих 3 столбца: имя, штат, номер телефона и тысячи строк данных в каждом файле. Данные в столбце Состояние сокращены (AL для Алабамы, Флорида для Флориды и т. Д.). Есть ли способ изменить все аббревиатуры с полным именем за один ход? Я знаю, что могу искать и заменять их вручную или с помощью функции поиска, но можно ли это сделать с помощью макроса?Заменить конкретные условия другими

+0

Вы могли бы сделать это для одного файла с помощью поиска/замены и записи макроса в процессе , Затем вы можете использовать макрос для других файлов. – Jerry

+0

О, я вижу. так что не обойти ручную работу :) Спасибо! @Jerry –

+0

@Jerry Вы могли бы, конечно, написать макрос без его записи, но вам все равно нужно будет ввести lookup_list где-нибудь - либо в дополнительную книгу, либо в сам макрос –

ответ

1

Для каждого файла и каждого листа в файле, выберите ячейки, которые вы хотите перевести и запустить этот макрос:

Sub stitutions() 
    Dim r As Range 
    Dim fnd As String, rep As String 
    abr = "AL,AK,AS,AZ,AR,CA,CO,CT,DE,DC,FM,FL,GA,GU,HI,ID,IL,IN,IA,KS,KY,LA,ME,MH,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,MP,OH,OK,OR,PW,PA,PR,RI,SC,SD,TN,TX,UT,VT,VI,VA,WA,WV,WI,WY" 
    states = "Alabama,Alaska,American Samoa,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,District Of Columbia,Federated States Of Micronesia,Florida,Georgia,Guam Gu,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Marshall Islands,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Northern Mariana Islands,Ohio,Oklahoma,Oregon,Palau,Pennsylvania,Puerto Rico,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virgin Islands,Virginia,Washington,West Virginia,Wisconsin,Wyoming" 
    aryabr = Split(abr, ",") 
    arystates = Split(states, ",") 
    Set r = Intersect(ActiveSheet.UsedRange, Selection) 
    For i = LBound(aryabr) To UBound(aryabr) 
     fnd = aryabr(i) 
     rep = arystates(i) 
     r.Replace What:=fnd, Replacement:=rep, SearchOrder:=xlByColumns, MatchCase:=True 
    Next i 
End Sub 
+0

WOW @gary! Я попробовал, и это сработало красиво! Спасибо огромное ! Я бы сказал вам, но пока не могу. –

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