gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:44:30 25 4
gpt4 key购买 nike

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

我还想在这个标准中包含一个普通的空格字符“”。我想知道是否有某种转义字符可以用来执行此操作?

所以,我的目标是能够运行这个函数,让它从给定的 Excel 单元格中删除所有指定的字符,同时删除所有空格。

另外,我意识到我可以在 Excel 本身中使用 =SUBSTITUTE 函数来做到这一点,但我想知道在 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), "") 'this will remove spaces
Next
removeSpecial = sInput
End Function

最佳答案

因此,根据 simoco 的建议,我能够修改我的 for loop :

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

现在,对于我的电子表格中给定单元格中的每个字符,特殊字符都将被删除并替换为任何内容。这基本上是通过一起使用的 Replace$ 和 Mid$ 函数完成的,如下所示:
sInput = Replace$(sInput, Mid$(sSpecialChars, i, 1), "") 'this will remove spaces

此代码通过我的 for loop 对单元格中从位置 1 处的字符开始的每个字符执行。 .

如果偶然发现我最初的问题,希望这个答案对将来的人有所帮助。

关于vba - UDF 删除单元格中的特殊字符、标点符号和空格,为 Vlookups 创建唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com