从单元格中删除空格

时间:2017-06-15 08:03:43

标签: vba excel-vba excel

我正在尝试从特定列中的单元格中删除所有空格。我找到了这个问题,答案是:How to remove spaces from an entire Excel column using VBA?

这是我改编答案的方式:

For i = 2 To n
    Cells(i, 17).Value = Replace(Cells(i, 17).Value, " ", "")
Next i

它确实消除了空间,但也消除了逗号。例如" 424,426"更改为" 424426"。

我确实一次运行一段代码,以确保问题确实发生在特定的应对块中。

我应该如何更改代码以确保只消除空格?

1 个答案:

答案 0 :(得分:3)

我认为您正在尝试删除前导和尾随空格。为此你不需要循环。这是一个单线示例

Sub Sample()
    [A1:A20] = [INDEX(TRIM(A1:A20),)]
End Sub

有关说明,请参阅This帖子

enter image description here

修改

要删除所有空格,请将代码更改为

For i = 2 To n
    If InStr(1, Cells(i, 17).Value, ",") Then
        Cells(i, 17).Value = Replace("'" & Cells(i, 17).Value, " ", "")
    Else
        Cells(i, 17).Value = Replace(Cells(i, 17).Value, " ", "")
    End If
Next i

或在执行替换之前将整个列的格式更改为Text

enter image description here