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
。
希望这个答案有益于未来,如果偶然发现我的原始问题。