Trim函数和WorksheetFunction.Trim不去除前导或尾部的空格。

问题描述 投票:0回答:1

我从一个网站上复制了一些数据到工作表中,注意到一些单元格中除了预期值外,还包含一个尾部的空格。

我想删除这些空格,因为它们会给我的代码带来麻烦。我发现一个特定的单元格有这个空格,于是尝试了一下。

Worksheets(2).Range("D17").Value = Trim(Worksheets(2).Range("D17").Value)
  • 空格仍然存在。

然后我又试了一下。

Worksheets(2).Range("D17").Value = WorksheetFunction.Trim(Worksheets(2).Range("D17").Value)
  • 还是不行

我发现了一个特定的单元格有这个空格,我试了一下:这个空格还在。Replace 函数不仅删除了前导和后导,还删除了字符串中的空格。

Worksheets(2).Range("D17").Value = Replace(Worksheets(2).Range("D17").Value," ","")
  • 有些单元格里有两个字,所以这不是一个选择。

我可以检查最后一个字符是否是空格,然后在每个单元格中删除它,但这似乎不是一个优雅的解决方案,主要问题仍然存在。主要的问题是... Trim 函数不工作?

excel vba trim
1个回答
3
投票

在花了很长时间在网上搜索后,我发现 此处 还有另一个空格字符,即 Chr(160) 又不知为何 Trim 函数忽略它。所以在我的情况下,解决方案是 首先 替换这些 "不同 "的空间 然后 修剪值。

Worksheets(2).Range("D17").Value = Replace(Worksheets(2).Range("D17").Value, Chr(160), " ")
Worksheets(2).Range("D17").Value = Trim(Worksheets(2).Range("D17").Value)

如果你遇到类似的问题,并遇到不同的Chr(160) 未知 "的字符,你可以通过隔离这个字符并使用 Asc 职能。

© www.soinside.com 2019 - 2024. All rights reserved.