Excel文本到数字的转换不正确(VBA还是手动?)

r1zhe5dt  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(138)

我有一个Excel工作簿混合了"数字格式"和"文本格式"的数字,使其无法用于计算。所有数字都必须是"数字格式"。
我的问题是当我手动或使用VBA代码转换数字时,它们转换为错误的大小。Fx.文本格式为1.0554(一点零五五四)的单元格必须转换为数字格式的1,0554(一个逗号零五五四),而不能转换为数字格式的10554(一万五百五十四)。
有人知道怎么解决吗?
我目前的VBA代码如下,但是如果这个问题可以在没有VBA的情况下以更容易的方式解决,那么我也非常感谢!

Sub ConvertTextToNumbers()
Dim lastRow As Long
lastRow = Range("K" & Rows.Count).End(xlUp).Row
Dim cell As Range
For Each cell In Range("K2:O" & lastRow)
    If IsNumeric(cell.Value) = False And cell.Value <> "" Then
        cell.Value = Replace(cell.Value, ".", Application.DecimalSeparator)
        cell.Value = Replace(cell.Value, ",", Application.DecimalSeparator)
        cell.Value = Val(cell.Value)
        If IsError(cell.Value) Then cell.Value = 0
    End If
    If IsNumeric(cell.Value) Then cell.Value = CDbl(cell.Value)
Next cell

末端子组件

pjngdqdw

pjngdqdw1#

您将用相同的小数点分隔符替换点和逗号。
可能其中一个应该是千位分隔符。无论如何,尝试更换这个部分:

cell.Value = Replace(cell.Value, ".", Application.DecimalSeparator)
cell.Value = Replace(cell.Value, ",", Application.DecimalSeparator)

cell.Value = Replace(cell.Value, ",", "")
cell.Value = Val(Replace(cell.Value, ".", ","))

如果您以后需要在视觉上将点视为千位分隔符,您可以设置单元格的格式,但实际上计算并不需要。

相关问题