我创建了一个宏,用于删除字符串中的所有空格,特别是电子邮件地址。然而,它只删除了大约 95% 的空白,并留下了一些。
我的代码:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
我尝试解决该问题的方法包括:
~用Code函数确认空格确实是空格,是字符32(空格)
~ 将替换宏与替换宏结合使用
~ 有额外的宏利用 Trim 函数来删除前导和尾随空格
~ 制作了一个单独的宏来测试不间断空格(字符 160)
~ 使用查找和替换功能来搜索和替换空的空格。已确认工作。
运行宏时我只选择了一个单元格。由于代码的 Selection.Cells 部分,它会选择并遍历所有单元格。
一些例子:
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM.
这些仅包含常规空白,但会被跳过。
最佳答案
只需使用正则表达式:
'Add a reference to Microsoft VBScript Regular Expressions 5.5
Public Function RemoveWhiteSpace(target As String) As String
With New RegExp
.Pattern = "\s"
.MultiLine = True
.Global = True
RemoveWhiteSpace = .Replace(target, vbNullString)
End With
End Function
这样调用它:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w.Value = RemoveWhiteSpace(w.Value)
Next
End Sub
关于vba - 删除字符串中的所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306358/