【发布时间】:2021-05-31 10:24:18
【问题描述】:
我正在寻找最快的方法来删除字符串中的 [多个] 空格,然后在单元格中输出。可以有 1、2 3、X 空格字符。
*example: "hello world how are you"*
我的过程非常耗时,所以我正在寻找最快的方法,而不是最简单的方法,但我对 vba 的了解有限。
这是我目前发现的:
正则表达式 Removing blank space from a string '这个对我不起作用,即使我添加了正则表达式参考。我遇到了编译错误。
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
每个循环一个我认为这个会分裂,然后在每个单词之间用一个空格重建?
str = Split(s)
s = ""
For Each str1 In str
If str1 <> "" Then
s = s & str1 & " "
End If
Next str1
s = Trim(s)
This one 谈论删除所有空格
所以我很困惑。我觉得我应该使用正则表达式。有人想分享他们对此的想法吗? 谢谢!
【问题讨论】:
-
This 可能会有所帮助。
-
谢谢 JvdV。我确实再次测试了 WorksheetFunction,但忘记将值返回到更新的单元格值。现在它正在工作。我会将它应用到我的整个项目中,希望它不会耗费太多时间。
标签: excel regex vba performance worksheet-function