将特殊字符转换为字母

0 excel vba excel-vba

我有一个名称列的excel文件,它使用不同的语言.我需要将此名称转换为标准英语语言.

例:

HỒĐĂNGTẤN必须转换为HO DANG TAN.

NGUYỄNĐỨCKIÊN - NGUYEN DUC KIEN

OO TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH TH

Ris*_*Dua 6

步骤1:打开Microsoft Visual Basic for Applications窗口.

步骤2:单击插入 - >模块,然后在模块窗口中输入以下宏.

Function StripAccent(thestring As String)
Dim A As String * 1
Dim B As String * 1
Dim i As Integer

Const AccChars= "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars= "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"

For i = 1 To Len(AccChars)
A = Mid(AccChars, i, 1)
B = Mid(RegChars, i, 1)
thestring = Replace(thestring, A, B)
Next
StripAccent = thestring
End Function
Run Code Online (Sandbox Code Playgroud)

步骤3:然后转到空白单元格并将公式粘贴到单元格中:
=CheckStringCHAR(InString)
例如=CheckStringCHAR("ù"),或=CheckStringCHAR(A2).

字符列表并非详尽无遗.更多信息,请访问http://en.wikipedia.org/wiki/List_of_Latin-script_letters#Letters_with_diacritics