2016-11-21 6 views
0

J'essaie de remplacer les caractères roumains (comme "şţŞŢ") d'un fichier Excel en utilisant VBA, mais je ne peux pas le comprendre.Remplacer les caractères spéciaux par VBA

Dans l'éditeur VBA, si j'essaie de taper "ş" ou "ţ", il est remplacé par "?". Pourquoi???

J'ai même tryed une approche différente comme:

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

mais il ne absolutelly rien ... S'il vous plaît aider.

Répondre

2

Je viens d'essayer une solution rapide pour ş qui a le code ascii 351. Il pourrait être décrit avec

ChrW(351) 

Donc, voici mon code:

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

semble bon, sauf pour terminologie. ChrW prend une unité de code UTF-16. UTF-16 est un encodage du jeu de caractères Unicode. Les caractères en question ont chacun besoin d'une unité de code UTF-16. Hex serait la base préférée parce que vous pourriez directement mapper l'unité de code & H15F au codepoint [U + 015F] (http://www.fileformat.info/info/unicode/char/015f/index.htm) (ş). –

+0

ChrW fonctionne très bien, merci! – user3254924

+0

Quelle fonction peut être utilisée pour Hex? – user3254924