如何从每个Excel单元格中删除前导空格?

假设下面的Excel表格:

| A --+----- 1 |foo bar 2 | bar baz 3 | baz 4 | bam 

我需要一种方法来自动删除所有前导空格:

  | A --+----- 1 |foo bar 2 |bar baz 3 |baz 4 |bam 

我无法find一个Excelfunction来做到这一点。 谁能帮我吗?

如果您希望单元格保存转换后的值以及单词之间的空格的[return] ,请使用以下代码:

 'DECLARE VARIABLES Dim myRng As Range, c As Range 'INITIALIZE VARIABLES Set myRng = Range("A1:A4") 'LOOP THRU RANGE For Each c In myRng.Cells 'TRIM LEADING AND TRAILING SPACES c.Value = LTrim(c.Value) c.Value = RTrim(c.Value) Next c 'ADD RETURN SPACE myRng.Replace What:=" ", Replacement:=Chr(10), LookAt:=xlPart 

使用=Trim(A1)从string的任何一边删除白色。

要用换行符replace剩余的空白字符,可以使用=SUBSTITUTE(A1," ",[X]) ,其中[X]是下列之一:

  • Char(10) {换行}
  • Char(13) {回车}
  • [type] Alt+Enter手动将换行符插入到Excel单元格中

帮助参考

TRIM(text)从文本中删除除单词之间的单个空格之外的所有空格。

SUBSTITUTE(text, old_text, new_text, [instance_num])用文本stringreplacenew_textold_text

您可以使用下面的数组方法快速完成此操作,从而避免了循环

虽然有效的代码可以运行在一个单一的长线,我已经打破了清晰。

这将更新单元格到原始范围的右侧。

 Sub UpDateIt() Dim rng1 As Range Dim strText As String strText = "," Set rng1 = Range([a1], Cells(Rows.Count, "A").End(xlUp)) With Application x = Replace(Replace(.Trim(Join(.Transpose(rng1), strText)), ", ", ","), Chr(32), Chr(10)) rng1.Offset(0, 1) = .Transpose(Split(x, strText)) End With End Sub