我在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中使用。
编辑:它已修复!谢谢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
答案 0 :(得分:1)
所以在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中字符开头的单元格中的每个字符执行。
希望如果遇到我原来的问题,这个答案将有益于某人。