Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码从文本更改为范围的数值,但列不高?_Excel_Vba - Fatal编程技术网

Excel VBA代码从文本更改为范围的数值,但列不高?

Excel VBA代码从文本更改为范围的数值,但列不高?,excel,vba,Excel,Vba,我在VBA中编写了一个代码,将文本范围内的值更改为常规值(数字)。它工作正常,但有一个问题。当我检查所有列值时,只有带有整数值(“2345”)的字符串更改为整数(2345),但带有浮点值(“123.456”)的字符串没有任何更改,类型更改为General,但值保持不变 这是vba代码 If (ws.Name = "TB") Then shTB.Activate [A:A].Select With Selection .NumberFormat = "Gen

我在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行变为数字或整数。任何建议或帮助都将不胜感激

如果“.”代表千位分隔符,只需将其移除即可

With shTB.Range("A:A")
    .Replace what:=".", replacement:=vbNullString
    .NumberFormat = "General"
End With

顺便说一句,正如您所看到的,您无需选择任何内容:只需按其直接引用操作即可。从您的结果中可以清楚地看出,数据的文本格式与区域设置之间存在不匹配

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

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

我的意思是按照您的示例“123.456”将点替换为空字符串(即删除它们)