首页 > 解决方案 > 删除多余空格的最快方法 - 在 VBA excel 中

问题描述

我正在寻找最快的方法来删除字符串中的 [多个] 空格,然后在单元格中输出。可以有 1、2 3、X 空格字符。

*example: "hello  world                         how are    you"*

我的过程非常耗时,所以我正在寻找最快的方法,而不是最简单的方法,但我对 vba 的了解是有限的。

这是我到目前为止发现的:

正则表达式 从字符串中删除空格'这个对我不起作用,即使我添加了正则表达式引用。我有一个编译错误。

With New RegExp
        .Pattern = "\s+"
        .Global = True
        RemoveExtraSpace = .Replace(inVal, " ")
    End With

工作表功能

Application.WorksheetFunction.Trim(s)

EDIT: str = Application.WorksheetFunction.Trim(str) 'seems to work

a for each loop我认为这个循环会分裂,然后在每个单词之间用一个空格重建?

str = Split(s)
s = ""
For Each str1 In str
    If str1 <> "" Then
        s = s & str1 & " "
    End If
Next str1
s = Trim(s)

这个谈论删除所有空间

所以我很困惑。我觉得我应该使用正则表达式。有人想分享他们对此的想法吗?谢谢!

标签: excelregexvbaperformanceworksheet-function

解决方案


如果你需要通过代码来做,试试这个

Sub ReplaceSpaces()
    Dim myWord_ As String
    myWord_ = "hello  world                         how are    you"
    myWord_ = Replace(myWord_, " ", "")
End Sub

推荐阅读