Excel VBA .Trim 函数更改。到 ,

Excel VBA .Trim function changes . to ,

今天早些时候,我使用 .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 将为您提供单元格中内容的字符串版本,而不是尝试将其转换为数字(如果它看起来像数字)。

如果您不想更改此应用程序的全局 system/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

很遗憾我无法测试它。