从Excel单元格中删除前导和尾随空格

时间:2016-06-13 15:40:29

标签: .net excel-vba trim vba excel

我有一个Excel电子表格,其中包含几个具有前导或尾随空格的单元格(包括空格,非中断空格,回车符和新行)。我想删除这些空格。我的Google搜索建议只能使用VBA。 VBA Trim函数不会删除所有类型的空格,也可能从单元格的中间删除。 VBA的Trim函数的MSDN页面引用了.NET的String.Trim方法,它完全符合我的要求。但是,我不知道如何按照第一个链接的建议从VBA调用String.Trim。如何从Excel VBA调用String.Trim方法?

编辑:为了澄清,我想在单元格的中间保留空格(包括回车和新行)。我只想从单元格的开头和结尾删除字符。

3 个答案:

答案 0 :(得分:1)

如果您想在Excel中执行此操作而无需使用VBA:

=TRIM(CLEAN(A1))

假设您要清理A1单元格。从我的测试中删除了所有标签,回车和换行符,但也将多个空格转换为单个空格,因此它可能不是您想要的。

答案 1 :(得分:1)

我遇到了同样的问题,但我发现这个代码和它的工作完美。它从列名中删除前导和尾随空格。

foreach (DataColumn c in d.Columns)
                c.ColumnName = c.ColumnName.Trim();

干杯

答案 2 :(得分:1)

希望您的问题现在已经解决。我仍然会把答案留给那些可能仍需要的人。我也是这样做的,只有经过广泛的研究后才发现这一点,因为大多数答案都是循环使用,而我通常不惜一切代价避免这样做。至少是显式循环!

因此,对我而言,这些简单的代码行就像是一种魅力:

Dim Rng As Range
Set Rng = Range("A1").CurrentRegion 'Select the Range based on your criteria, preferably smaller
Rng.Value = Application.Trim(Rng)

希望它会有所帮助:)