UDF删除单元格中的特殊字符,标点符号和空格以为Vlookups创build唯一键

我在VBA中一起攻击了下面的用户定义函数,允许我从任何给定的单元格中删除某些非文本字符。

代码如下:

Function removeSpecial(sInput As String) As String Dim sSpecialChars As String Dim i As Long sSpecialChars = "\/:*?™""®<>|.&@#(_+`©~);-+=^$!,'" 'This is your list of characters to be removed For i = 1 To Len(sSpecialChars) sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), " ") Next removeSpecial = sInput End Function 

代码的这一部分显然定义了要删除的字符:

 sSpecialChars = "\/:*?™""®<>|.&@#(_+`©~);-+=^$!,'" 

我也想在这个标准中包括一个正常的空格字符“”, 我想知道是否有某种我可以用来做这个的转义字符?

所以,我的目标是能够运行此function,并从给定的Excel单元格中删除所有指定的字符,同时也删除所有空格。

此外,我意识到我可以在Excel本身内使用= SUBSTITUTE函数来做到这一点,但我想知道在VBA中是否可行。

编辑:它是固定的! 谢谢simoco!

 Function removeSpecial(sInput As String) As String Dim sSpecialChars As String Dim i As Long sSpecialChars = "\/:*?™""®<>|.&@# (_+`©~);-+=^$!,'" 'This is your list of characters to be removed For i = 1 To Len(sSpecialChars) sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "") 'this will remove spaces Next removeSpecial = sInput End Function 

所以在simoco的build议后,我可以修改我的for loop

 For i = 1 To Len(sSpecialChars) sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "") 'this will remove spaces Next 

现在,对于电子表格中给定单元格中的每个字符,特殊字符将被删除并被replace为任何内容。 这基本上是通过一起使用Replace $和Mid $函数完成的,如下所示:

 sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "") 'this will remove spaces 

这个代码针对单元格中的每个单个字符执行,从位置1的字符开始,通过我的for loop

希望这个答案有益于未来,如果偶然发现我的原始问题。