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它。