2016-11-21 3 views
0

Я пытаюсь заменить румынских персонажей (например, «şţŞŢ») из файла Excel с помощью VBA, но я не могу понять это.Заменить специальные символы на VBA

В редакторе VBA, если я пытаюсь ввести «ş» или «ţ», он заменяется на «?». Зачем???

Я даже судимое другой подход, как:

Selection.Replace What:="ş", Replacement:="s", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

, но он не делает ничего absolutelly ... Пожалуйста, помогите.

ответ

2

Я только попробовал быстрое решение для ş, который имеет код 351. ASCii Так что может быть описано с

ChrW(351) 

Так вот мой код:

Sub replance() 

Dim rng As Range 

Set rng = Worksheets(1).Columns("A:G") 

rng.Replace What:=ChrW(351), Replacement:="s", SearchOrder:=xlByColumns, MatchCase:=True 

End Sub 
+0

Выглядит хорошо, за исключением терминология. ChrW принимает код UTF-16. UTF-16 является кодировкой набора символов Unicode. Каждому персонажу нужен один кодовый блок UTF-16. Hex будет предпочтительной базой, потому что вы можете напрямую сопоставить блок кода и H15F с кодовым номером [U + 015F] (http://www.fileformat.info/info/unicode/char/015f/index.htm) (ş). –

+0

ChrW отлично работает, спасибо! – user3254924

+0

Какую функцию можно использовать для Hex? – user3254924