首页 > 解决方案 > 无法踢出字符串周围和字符串之间的空格

问题描述

我正在尝试消除字符串周围和字符串之间的空格。问题是我知道我可以通过使用来摆脱空格,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

我检查了这两个答案,第一个第二个,但这些并没有帮助我解决这个问题。

如何使用 vba 去除空格?

标签: excelvbawhitespace

解决方案


您可以使用正则表达式:

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 参考。

编辑:Whelp,这是矫枉过正。正如评论的那样,你可以做Worksheetfunction.trim(itemstr)


推荐阅读