2014-12-22 3 views
-2

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

Если кому-то интересно, это всего лишь код для поиска и замены распространенных ошибок. Это в Visual Basic. Благодаря!

Cells.Replace What:=" uk ", Replacement:=" UK ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" info ", Replacement:=" information ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="havant", Replacement:="haven't", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="everytime", Replacement:="every time", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="wouldnt", Replacement:="wouldn't", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="couldnt", Replacement:="couldn't", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="shouldnt", Replacement:="shouldn't", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="scottish", Replacement:="Scottish", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="havnt", Replacement:="haven't", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="must of", Replacement:="must have", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="on line", Replacement:="online", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="help full", Replacement:="helpful", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="xmas", Replacement:="Christmas", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="christmas", Replacement:="Christmas", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" allot ", Replacement:=" a lot", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="vip", Replacement:="VIP", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:="on line", Replacement:="online", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" usa ", Replacement:=" USA ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" wales ", Replacement:=" Wales ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" dif ", Replacement:=" did ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
Cells.Replace What:=" saif ", Replacement:=" said ", LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 

ответ

3

Вы можете создать многомерный массив (http://msdn.microsoft.com/en-us/library/d2de1t93(v=vs.90).aspx), который содержит оригинальные и новые значения

Затем цикл через массив вызывающего ваш Cells.Replace один раз в течение цикла (0 = оригинал, 1 = замена)

Dim newArray(5,1) as string 
newarray(0,0) = "info" 
newArray(0,1) = "information" 

For x = 0 to 5 
Cells.Replace What:=newArray(x,0), Replacement:=newArray(x,1), LookAt:=xlPart, _ 
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 

Next 
+0

Это здорово, спасибо, просто задайте еще один любительский вопрос, как мне добавить еще одну замену на это? – Jac

+0

Не уверен, что я понимаю, что вы имеете в виду? Вы имеете в виду добавить больше к массиву (newArray)? – Mike

+0

Не волнуйтесь, я все понял, спасибо! – Jac

0

Если вы не указали все параметры, то он помнит ваш последний раз. Таким образом, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False является избыточным после того, как вы указали первый раз. Свойства, такие как методы, являются функциональными вызовами, которые медленны. Каждая строка выполняет 4 дополнительных вызова функций, которые не нужны после первой строки.

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

  • Нет связанных вопросов^_^