我正在尝试从特定列中的单元格中删除所有空格。我找到了这个问题,答案是: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"。
我确实一次运行一段代码,以确保问题确实发生在特定的应对块中。
我应该如何更改代码以确保只消除空格?
答案 0 :(得分:3)
我认为您正在尝试删除前导和尾随空格。为此你不需要循环。这是一个单线示例
Sub Sample()
[A1:A20] = [INDEX(TRIM(A1:A20),)]
End Sub
有关说明,请参阅This帖子
修改强>
要删除所有空格,请将代码更改为
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
。