首页 > 解决方案 > VBA 代码从文本变为范围的数值,但列不高?

问题描述

我在 VBA 中编写了一个代码来将范围内的值从文本更改为一般(数字)。它工作正常,但是有一个问题。当我检查所有列值时,只有整数值(“2345”)的字符串更改为整数(2345)但浮点值(“123.456”)的字符串根本没有改变,类型更改为General但价值保持不变。

这是vba代码

If (ws.Name = "TB") Then
    shTB.Activate
    [A:A].Select
    With Selection
        .NumberFormat = "General"
        .Value = .Value
    End With 

结果如下表所示,浮点值仍然没有改变。如您所见,只有第 119 行更改为数字或整数。非常感谢任何建议或帮助!

在此处输入图像描述

标签: excelvba

解决方案


从您的结果中可以清楚地看出,数据的文本格式与您的区域设置之间存在不匹配。

您的数据似乎来自逗号是小数分隔符而不是句点的来源。尝试:

Sub dural()
    With Range("A:A")
            .NumberFormat = "General"
            .Replace ",", "."
            .Value = .Value
    End With
End Sub

推荐阅读