2016-11-21 72 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