假设以下Excel表格:
| A
--+-----
1 |foo bar
2 | bar baz
3 | baz
4 | bam
我需要一种方法来自动删除所有前导空格:
| A
--+-----
1 |foo bar
2 |bar baz
3 |baz
4 |bam
我无法找到Excel功能来执行此操作。任何人都可以帮助我吗?
答案 0 :(得分:2)
使用=Trim(A1)
从字符串的任意一侧删除whitespce。
要使用换行符替换剩余的空白字符,您可以使用=SUBSTITUTE(A1," ",[X])
,其中[X]
是其中之一:
Char(10)
{换行}} Char(13)
{for a carriage return} Alt+Enter
手动将换行符插入Excel单元格帮助参考
TRIM(text)
删除文本中的所有空格,除了单词之间的单个空格。
SUBSTITUTE(text, old_text, new_text, [instance_num])
在文本字符串中替换new_text
old_text
。
答案 1 :(得分:2)
如果您希望单元格保存转换后的值以及单词之间的空格[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
答案 2 :(得分:1)
使用下面的数组方法可以非常快速地完成此操作
虽然代码有效地可以在一个长行中运行,但为了清楚起见,我已将其分解。
这会将细胞更新到原始范围的右边。
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