Pat*_*her 7 excel vba excel-vba
我创建了一个宏来删除字符串中的所有空格,特别是电子邮件地址.然而,它只删除了大约95%的空白,并留下了一些空白.
我的代码:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题的事情包括:
〜使用Code函数确认空格确实是空格,它是字符32(空格)
〜使用替换宏与替换宏结合使用
〜有额外的宏利用Trim函数删除前导和尾随空格
〜制作一个单独的宏来测试对于不间断的空格(字符160)
〜使用"查找和替换"功能来搜索和替换空格.确认工作.
我运行宏时只选择了一个单元格.由于Selection.Cells部分代码,它选择并遍历所有单元格.
几个例子:
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM.
Run Code Online (Sandbox Code Playgroud)
这些只包含常规空格,但会被跳过.
只需使用正则表达式:
'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
Run Code Online (Sandbox Code Playgroud)
像这样调用它:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w.Value = RemoveWhiteSpace(w.Value)
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52806 次 |
| 最近记录: |