【问题标题】:Fastest way to remove extra blank space - in VBA excel删除多余空格的最快方法 - 在 VBA excel 中
【发布时间】: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


【解决方案1】:

希望得到你的想法

在目标单元格中​​按原样写入文本 然后使用这些代码之一替换

Sub ReplaceInColumn()
    Columns("C:C").Select ' change your columns as you need
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

Sub ReplaceInCell()
    Range("A2").Select 'chage your cell as you need
    Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, _
        FormulaVersion:=xlReplaceFormula2
End Sub

【讨论】:

  • 这会删除字符串中的所有空格吗?
  • 是的,它会删除单元格或列或范围中的所有空格,因为您可以调整代码,您可以用 activecell 替换单元格
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多