用stringreplace所有外来字符

在Microsoft Excel中,我有一个单元格,其中包含我正在销售的产品的名称。 这个单元格可能包含外国口音。 我想要做的是用最接近的英文等值replace外来字符。 在这种情况下,我创build一个公式如下:

=SUBSTITUTE(G618,"ô","o") 

G618包含说“Nivôse”时,将返回Nivose。 但是,由于Excel限制了您不断地将SUBSTITUTE()函数相互嵌套,我想知道是否有另外一个函数或者一种写法来实现相同的function?

如果我有我的等价更正,下面的用户定义函数应该做适当的replace。 但是你应该检查它。

编辑:我错过了一些我第一次尝试。 所以现在编辑。

要input这个用户自定义函数(UDF), alt-F11打开Visual Basic编辑器。 确保您的项目在“项目浏览器”窗口中突出显示。 然后,从顶部菜单中select插入/模块,然后将下面的代码粘贴到打开的窗口中。

EDIT2:修改为允许用两个字符replace(例如:带AE的Æ)或不带字符

要使用这个用户定义函数(UDF),input一个像

= ReplaceAccentedCharacters(A4)

在一些细胞。

 Option Explicit Function ReplaceAccentedCharacters(S As String) As String Dim I As Long With WorksheetFunction For I = Len(S) To 1 Step -1 Select Case Asc(Mid(S, I, 1)) Case &HC0 To &HC5 S = .Replace(S, I, 1, "A") Case &HC6 S = .Replace(S, I, 1, "AE") Case &HE0 To &HE5 S = .Replace(S, I, 1, "a") Case &HE6 S = .Replace(S, I, 1, "ae") Case &HC7 S = .Replace(S, I, 1, "C") Case &HE7 S = .Replace(S, I, 1, "c") Case &HD0 S = .Replace(S, I, 1, "D") Case &HC8 To &HCB S = .Replace(S, I, 1, "E") Case &HE8 To &HEB S = .Replace(S, I, 1, "e") Case &HCC To &HCF S = .Replace(S, I, 1, "I") Case &HEC To &HEF S = .Replace(S, I, 1, "i") Case &HD1 S = .Replace(S, I, 1, "N") Case &HF1 S = .Replace(S, I, 1, "n") Case &HD2 To &HD6 S = .Replace(S, I, 1, "O") Case &HF2 To &HF6, &HF0 S = .Replace(S, I, 1, "o") Case &HD9 To &HDC S = .Replace(S, I, 1, "U") Case &HF9 To &HFC S = .Replace(S, I, 1, "u") Case &HD7 S = .Replace(S, I, 1, "x") Case &HDD S = .Replace(S, I, 1, "Y") Case &HFD, &HFF S = .Replace(S, I, 1, "y") End Select Next I End With ReplaceAccentedCharacters = S End Function