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
很遗憾我无法测试它。
今天早些时候,我使用 .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
很遗憾我无法测试它。