Excel VBA .Trimfunction改变。 至 ,

今天早些时候,我正在使用.trim()vba函数清理数据。 虽然它造成。 被改变,我不知道为什么。

Cells(rw, j).Value = Trim(Cells(rw, j).Value) 

是我所做的,它改变了价值观如下:

5.2 – > 5,2

有人可能认为这是由于本地设置,虽然同一列包含像3(6.1)这样的值不会混淆。

提前致谢

转到文件 – 选项 – 高级并查找使用系统分隔符 。 你想要小数点分隔符。 和千位分隔符是,

您还可以使用以下代码在VBA中更改这些值:

  Application.DecimalSeparator = "." Application.ThousandsSeparator = "," Application.UseSystemSeparators = False 

由于您不想更改这些设置,请将您的代码更改为:

 Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Text) 

.Text会给你单元格的string版本,而不是试图将其转换为数字(如果它看起来像一个数字)。

如果你不想为这个应用程序改变你的全局系统/ excel设置,你可以试着用下面这样的东西强制文本的值:

 With Cells(rw, j) .NumberFormat = "@" .Value = Trim(Cells(rw, j).Value) End With 

或者,根据您的评论:

 With Cells(rw, j).Value = "'" & Trim(Cells(rw, j).Value) 

你可以试试这个:

 Dim temp As String temp = Cells(rw, j).Value temp = Trim(temp) Cells(rw, j).Value = temp 

不幸的是我无法testing它。