Страницы: 1
RSS
Добавить исключение для макроса EXCEL, удаление русских символов
 
Здравствуйте, есть макрос, который прописан ниже. Работает на одну функцию — удаление всех русских символов, работает хорошо. Но есть проблема, нужно сделать исключение для макроса, чтобы определенное словосочетание, или несколько слов из русских символов он не учитывал, и не удалял. (слова известны, их нужно только прописать в исключении) Можете помочь?
Код
Function Del_Rus(sStr As String)
Dim li As Long
For li = 192 To 255[/COLOR]
sStr = Replace(sStr, Chr(li), "")
Next li
sStr = Replace(sStr, Chr(168), "")
sStr = Replace(sStr, Chr(184), "")
Del_Rus = sStr
End Function
 
1) добавляем по очереди все слова в коллекцию
Код
dim coll as new collection
coll.add "слово1"
coll.add "фраза вторая"

2) меняем в тексте все фразы на $+ номер фразы+$
Код
   For i = 1 To coll.count
      sStr = replace(sStr , coll(i), "$" & i & "$")
    Next i

3) выполняем замены символов вашим кодом
4) обратные замены кодов слов на слова
Код
   For i = 1 To coll.count
      sStr = replace(sStr, "$" & i & "$" , coll(i))
    Next i
 
Спасибо за ответ. НО только я не очень пока знаю как эти макросы редактировать. Позавчера я вообще не знал об этой функции. Если не сложно, можно сразу скинуть готовый макрос, или описать более понятно)
 
Код
Function Del_Rus(sStr As String)
    Dim li As Long, coll As New Collection, i&

    ' добавляем по очереди все слова в коллекцию
    coll.Add "слово1"
    coll.Add "фраза вторая"

    ' меняем в тексте все фразы на $+номер_фразы+$
    For i = 1 To coll.Count
        sStr = Replace(sStr, coll(i), "$" & i & "$")
    Next i

    ' выполняем замены символов вашим кодом
    For li = 192 To 255
        sStr = Replace(sStr, Chr(li), "")
    Next li
    sStr = Replace(sStr, Chr(168), "")
    sStr = Replace(sStr, Chr(184), "")

    ' обратные замены кодов слов на слова
    For i = 1 To coll.Count
        sStr = Replace(sStr, "$" & i & "$", coll(i))
    Next i

    Del_Rus = sStr
    Set coll = Nothing
End Function
 
Спасибо) вот теперь все отлично работает)
Страницы: 1
Читают тему
Наверх