2016-11-21 262 views
0

我想用VBA從Excel文件中替換羅馬字符(比如「şţŞŢ」),但是我找不到它。用VBA替換特殊字符

在VBA編輯器中,如果我嘗試輸入「ş」或「ţ」,它將被替換爲「?」。爲什麼???

我甚至tryed不同的方法,如:

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

但absolutelly什麼也不做...... 請幫助。

回答

2

我剛剛試過有一個快速的解決方案,有那麼它可能與

ChrW(351) 

所以這裏描述的ASCII碼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編碼單元。十六進制將是首選的基礎,因爲您可以直接將代碼單元&H15F映射到代碼點[U + 015F](http://www.fileformat.info/info/unicode/char/015f/index.htm)(?)。 –

+0

ChrW非常好,謝謝! – user3254924

+0

Hex可以使用什麼函數? – user3254924