首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除字符串中的所有空格

删除字符串中的所有空格
EN

Stack Overflow用户
提问于 2017-02-18 03:56:22
回答 7查看 95.7K关注 0票数 12

我创建了一个宏,用于删除字符串中的所有空格,特别是电子邮件地址。然而,它只删除了大约95%的空格,只留下了一小部分。

我的代码:

代码语言:javascript
运行
复制
Sub NoSpaces()
    Dim w As Range

    For Each w In Selection.Cells
        w = Replace(w, " ", "")
    Next
End Sub

我尝试解决这个问题的方法包括:

~使用Code函数确认空格确实是空格,它是字符32 (空格)

~在替换宏中使用了替换宏

~让额外的宏利用Trim函数删除前导空格和尾随空格

~制作了一个单独的宏来测试不间断空格(字符160)

~已使用查找和替换功能搜索和替换空白空间。已确认工作正常。

当我运行宏时,我只选择了一个单元格。由于代码的Selection.Cells部分,它选择并遍历所有单元格。

下面是几个例子:

代码语言:javascript
运行
复制
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM. 

这些只包含常规空格,但会被跳过。

EN

Stack Overflow用户

发布于 2017-02-18 04:08:19

只需使用正则表达式:

代码语言:javascript
运行
复制
'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

这样叫它:

代码语言:javascript
运行
复制
Sub NoSpaces()
    Dim w As Range

    For Each w In Selection.Cells
        w.Value = RemoveWhiteSpace(w.Value)
    Next
End Sub
票数 5
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42306358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档