首页 > 解决方案 > Excel VBA循环遍历范围并删除空格和空格之前的文本

问题描述

我正在尝试创建一个宏来删除空格之前的单元格中的文本以及空格本身。

我原以为这会起作用,但它会删除每个单元格的全部内容。

任何人都可以看到这个问题吗?

Sub Trim()
    Dim r As Range

    For Each r In Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Cells.SpecialCells(xlCellTypeConstants)
        r.Value = Split(" ", r.Value)(0)
    Next r
End Sub

标签: excelvba

解决方案


您需要在发布之前检查语法,因为您使用 Split 的参数错误。如果您将光标放在关键字“Split”上并按 F1,这将打开有关 Split for VBA 的 MS 帮助页面。当您阅读本帮助时,您会发现拆分可以限制为它执行的拆分次数。如果您的文本包含多个空格,这很有用。

Sub Trim()

    Dim r As Range

    For Each r In Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Cells.SpecialCells(xlCellTypeConstants)
        ' Split will work without the " " as this is the default separator, 
        ' but its good practise to specify it
        r.Value = Split( r.Value," ", Limit:=2)(1)
    Next r
End Sub

推荐阅读