无法在字符串周围和字符串之间排除空格

时间:2019-07-01 20:39:54

标签: excel vba whitespace

我正在尝试在字符串周围和字符串之间消除空格。事实是,我知道可以使用leading摆脱trailingTrim()的空白,但是我无法删除位于字符串单词之间的空格。但是,如果我选择Replace(),则那里没有空格,甚至更糟。

我尝试过:

Sub KickOutWhitespaces()
    itemstr = "   hi    there    sam  "

    Debug.Print Trim(itemstr)
    Debug.Print Replace(itemstr, " ", "")
End Sub

我得到的输出:

hi    there    sam
hitheresam

我希望得到的东西:

hi there sam

我签出了first onesecond one这两个答案,但这些并没有帮助我解决这个问题。

如何使用vba消除空格?

2 个答案:

答案 0 :(得分:2)

您可以使用RegEx:

Sub repl()
Dim myRegExp As RegExp

Set myRegExp = New RegExp
Dim itemstr As String

myRegExp.Global = True
' The pattern is two spaces followed by an asterisk
myRegExp.Pattern = "  *"

itemstr = "   hi    there    sam  "

Dim finalStr As String
finalStr = Trim(myRegExp.Replace(itemstr, " "))
Debug.Print finalStr
End Sub

您将需要RegEx参考。

编辑:小孩子,这太过分了。如前所述,您只需Worksheetfunction.trim(itemstr)

答案 1 :(得分:0)

使用Trim(" "),然后使用Replace(" ", " ")将2个连续的空格替换为1个空格。

2个连续空格的所有实例将替换为一个空格。